PyQt4.9.1のモデルとビューを操作する方法を理解しようとしていますが、少し問題が発生しました。
重要なコードは次のとおりです。
class TestModel(QtGui.QStandardItemModel):
def __init__(self,parent=None):
QtGui.QStandardItemModel.__init__(self,parent)
self.initData()
self.headings = ['name','value','']
def initData(self):
self.rows = [['name {0}'.format(i), i] for i in range(20)]
def data(self, index, value, role):
print ("foo")
if not index.isValid():
return
if (role == QtCore.Qt.DisplayRole):
row = index.row()
col = index.column()
if (col == 3):
return "BUTTON GOES HERE"
return self.rows[row][col]
def headerData(self,section,orientation,role):
if (role == QtCore.Qt.DisplayRole):
if (orientation == QtCore.Qt.Horizontal):
return self.headings[section]
def rowCount(self,parent):
return len(self.rows)
def columnCount(self,parent):
return 3
class MainWindow(QtGui.QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.m = TestModel()
self.initUi()
def initUi(self):
layout = QtGui.QVBoxLayout()
widget = QtGui.QTableView()
widget.setModel(self.m)
layout.addWidget(widget)
self.setLayout(layout)
self.show()
アプリケーションのメインウィンドウを起動すると、次のようになります。エラーメッセージは表示されず、テーブルは正しい数の行と列、正しい見出しで描画されますが、テーブルは空です。モデルのdrawメソッドがprintステートメントで始まることに気付くかもしれません。その声明に達することはありません。足りないものはありますか?PyQt4.9.1のチュートリアルがまったく見つかりません。