我有QTableView的问题,并将数据放入它。文本(字符串)显示精细,并且可以使用代理和QStandardItemModel进行排序和筛选pyQt QTableView不显示数字(int,float等)
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和数据源自SQLite数据库使用自己写的查询包装,而不是QtSQL。
任何见识都被赞赏!
干杯,
本
谢谢,这确实有效,但是,排序是不正确的,因为例如, 10之后不是11,而是100。另外,我怀疑间隔上的过滤将起作用。如果我错了,请纠正我。整个QTableView只能用字符串工作吗? – 2013-04-08 21:26:57
像QTableView这样的数据显示小部件,QListView仅将QString作为其addItem方法的输入。您可以在将项目转换为字符串并将其插入表格之前进行排序。 – scottydelta 2013-04-08 21:52:36