qt

Qt5.0.2が来ていた
Qt5.0.2が来ていた Qt5.0.2がReleaseされた。 VC版のQt5.0.1ではglewの使用に支障があったのだけど無事解決。 これで、全面的にQt5に乗り換えて行ける。 こちらでQt5の新機能が紹介されているのだが、 その中のconnectのC++0x対応がよさげ。 http://www.slideshare.net/takumiasaki/qt5-20121215

QtでOpenGLを使う
QtでOpenGLを使う Qt5でOpenGLを使おうとしていたのだが、なんかglewを使うことができずに失敗した。 英語の情報によると5.0.2でそういうビルドをリリースするという説があったのでしばらくQt4.8系で行くことに。 {{ “1849514763” | amazon_medium_image }} スキニング方面ばかりいじっていてシェーディングが手薄なので、積んでいる”OpenGL 4.0 Shading Language Cookbook”を攻略して今風のOpenGLをマスターしなおすとしよう。 練習用コード https://github.com/ousttrue/qtgltest

[PyQt4]QTableViewとQAbstractTableModel
[PyQt4]QTableViewとQAbstractTableModel ディレクトリ表示をする専用のウィジェットがあったような気がするが、練習のため実装。 # !/usr/bin/env python # coding: utf-8 import re import operator import os import sys import stat from PyQt4.QtCore import * from PyQt4.QtGui import * class File(object): header=[ ‘type’, ‘name’, ‘size’, ‘mtime’ ] def __init__(self, path): self.path=os.path.abspath(path) self.data=[None, None, None, None] s=os.stat(path) mode=s[stat.ST_MODE] if stat.S_ISDIR(mode): self.data[0]=‘dir’ elif stat.S_ISLNK(mode): self.data[0]=‘link’ elif stat.S_ISREG(mode): self.data[0]=‘file’ else: self.data[0]=‘unknown’ self.data[1]=os.path.basename(path) self.data[2]=s[stat.ST_SIZE] self.data[3]=s[stat.ST_MTIME] def __str__(self): return “<%s %s>” % (self.

[PyQt4]カスタムデリゲート
[PyQt4]カスタムデリゲート C++のQt4と平行してPyQt4を使い始めた。大概の用途にはこっちで十分な気がする。 pyqtのチュートリアルには、 http://zetcode.com/tutorials/pyqt4/ がいい。wxWidgetsとかgtkでも世話になったが、ここのチュートリアルはサンプルが小さいので助かる。 ビューのアイテム表示をカスタマイズするデリゲートについて調査中。 # !/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore from random import randint class CustomDelegate(QtGui.QItemDelegate): def __init__(self, parent = None): super(CustomDelegate, self).__init__(parent) self.editor = QtGui.QSpinBox() # 編集時 # create widget def createEditor(self, parent, styleOption, index): editor = QtGui.QSpinBox(parent) return editor # model to editor def setEditorData(self, editor, index): data=index.model().data(index, QtCore.Qt.EditRole) editor.