我有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