将行 QTWidgetItem 添加到(继承的)QTableWidget 不会在单元格中显示任何值



下面的代码几乎可以工作,因为输出看起来是正确的,但实际的GUI Widget没有显示任何项目。

from pyqtgraph.Qt import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MyTable(QTableWidget):
    def __init__(self, data, *args):
        QTableWidget.__init__(self, *args)
        self.data = data
        self.setmydata()
    def setmydata(self):
        horHeaders = []
        for idx, key in enumerate(sorted(self.data)):
            horHeaders.append(key)
        self.setHorizontalHeaderLabels(horHeaders)
    def addrow(self, triangleObject):
        print 'addrow called'
        rowNum = self.rowCount()
        self.insertRow(rowNum)
        i = 1
        for val in triangleObject.triangle:
            print rowNum, i, val
            self.setItem(rowNum, i, QtGui.QTableWidgetItem(val))
            i += 1
        self.resizeColumnsToContents()
        self.resizeRowsToContents()
class Triangle(Observer):
    def __init__(self, slist):
        self.ptr = 0
        self.triangle = {}
        self.order = {}
        loopCount = 0
        for s in slist:
            sindex = sIndexHash[s]
            self.triangle[sindex] = (sindex, 0, 0, 0, 0)            
            self.order[loopCount] = sindex
            loopCount = loopCount + 1
data = {'S1' , 'S2', 'S3'}  # the column names
table = MyTable(data, 0, 3) # create an initial table with just column headers no rows
Triangle one
Triangle two
Triangle three
Triangle four
Triangle five
Triangle six
Triangle seven
Triangle eight
table.addrow(one)
table.addrow(two)
table.addrow(three)
table.addrow(four)
table.addrow(five)
table.addrow(six)
table.addrow(seven)
table.addrow(eight)

我可以看到以下输出。我还可以在屏幕上看到一个小部件,它看起来像一个带有正确列名的小电子表格但是我没有在小表格小部件单元格中看到任何内容

addrow called
0 1 1
0 2 4
0 3 7
addrow called
1 1 2
1 2 3
1 3 7
addrow called
2 1 4
2 2 5
2 3 6
addrow called
3 1 8
3 2 0
3 3 5
addrow called
4 1 8
4 2 3
4 3 6
addrow called
5 1 0
5 2 3
5 3 4
addrow called
6 1 9
6 2 10
6 3 3
addrow called
7 1 0
7 2 1
7 3 2

我不得不说

self.setItem(rowNum, i, QtGui.QTableWidgetItem(str(val)))

相关内容

最新更新