我在使用 QTableView 并将数据放入其中时遇到问题。文本(字符串)显示良好,可以使用代理和 QStandardItemModel 进行排序和过滤
self.material_model = QtGui.QStandardItemModel(self)
self.proxy = QtGui.QSortFilterProxyModel(self)
self.proxy.setSourceModel(self.material_model)
self.t_material.setModel(self.proxy)
但是,如果我尝试将数字/值放入表中,则使用以下代码段根本不会显示:
for row in xrange(0, len(self.material.data)):
item = QtGui.QStandardItem(str(self.material.data[row]['name']))
self.material_model.setItem(row, 0, item)
item2 = QtGui.QStandardItem()
item2.setData(QtCore.Qt.DisplayRole,float(999.99))
self.material_model.setItem(row, 1, item2)
我尝试了几种变体,包括 Qt.DisplayRole 而不是 Qt.EditRole。但从其他帖子中我感觉,并非所有方法和功能都在 pyQt 中实现,因此犹豫是否玩太多(不过我已经投入了几个小时)。现在我希望你能帮助我解决这个问题。也许,我的方法不适合我尝试做的事情,它基本上是按文本(名称)和值(间隔)过滤内容。我正在使用 pyQt,Windows7,数据来自使用自写查询包装器而不是 QtSQL 的 SQLite DB。
任何见解表示赞赏!
干杯,
本