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

2024-03-28 17:33:25 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码几乎可以正常工作,因为输出看起来是正确的,但是实际的GUI小部件没有显示任何项目。你知道吗

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

Tags: fromimportselfdatainitdeftabletriangle