我有QTableWidget
一个列表列表。每个内部列表有八个元素,我的表有一个在加载其他元素后计算的第九个控制列。我可以读取和打印来控制台表格的任何单元格的内容print(self.tAccounts.item(52,3).text())
,所以我认为数据没有问题,但是表格只显示表格中第一行和第一列的单元格内容,留下其他银行. 我应该在某个地方犯了错误,但我看不到。
使用 PyQt 5 和 Python 3。
构造函数
class Table(QWidget):
def __init__(self, parent=None):
super(Table, self).__init__(parent)
self.accounts = [] # The source is created in the constructor\
# and populate in other member function
self.tAccounts = QTableWidget(0,9)
self.tAccounts.setSortingEnabled(True)
self.tAccounts.setHorizontalHeaderLabels(['1','2','3','4','5','6','7','8','9'])
self.tAccounts.resizeColumnsToContents()
self.tAccounts.verticalHeader().hide()
成员函数:
def loadDay(self):
for row, account in enumerate(self.accounts):
self.tAccounts.insertRow(row)
for col in range(8):
self.tAccounts.setItem(row, col, QTableWidgetItem(str(accounts[col])))
self.tAccounts.item(row,col).setTextAlignment(Qt.AlignRight)
self.tAccounts.setItem(row, 8, QTableWidgetItem('')) # defined for further use