填充QTableWidget和填充所有节点时出现逻辑错误

2024-10-01 17:40:32 发布

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

我有以下代码(PyQt)

searchFrameObject.tableWidget.setRowCount(rowCounter)
searchFrameObject.tableWidget.setColumnCount(5)

for row in range(rowCounter):
    for column in range(5):
        for result in query:

            item = QtGui.QTableWidgetItem(_fromUtf8(result.name))
            item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
            searchFrameObject.tableWidget.setItem(row,column,item)

            #item = QtGui.QTableWidgetItem(String(result.bought_price))
            #item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
            #searchFrameObject.tableWidget.setItem(row,column+1,item)

            #item = QtGui.QTableWidgetItem(result.bought_date)
            #item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
            #searchFrameObject.tableWidget.setItem(row,column+2,item)

            item = QtGui.QTableWidgetItem(result.stock)
            item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
            searchFrameObject.tableWidget.setItem(row,column+3,item)

            item = QtGui.QTableWidgetItem(result.minimum_bound)
            item.setFlags(item.flags() ^ QtCore.Qt.ItemIsEnabled)
            searchFrameObject.tableWidget.setItem(row,column+4,item)

当我在DB,iprint result.nameprint result.stock中搜索时,一切正常。但是当我将它们导入QtableWidget时,我只看到节点result.name添加到widgets。(从result.name填充的所有节点)

我的问题是,如何用字段填充行和列?你知道吗


Tags: namecolumnresultitemqtrowflagsqtgui
1条回答
网友
1楼 · 发布于 2024-10-01 17:40:32

尝试注释掉行for column in range(5):,并将column设置为0。你知道吗

运行该循环似乎毫无意义,因为您手动递增要添加item的列号。你知道吗

还有一点,在query上运行循环是没有意义的,因为在特定行中出现的是在query中最后出现的。另外,您还通过创建(len(query) - 1) * 5项来无用地阻塞内存,这些项可能永远不会被再次使用。最好注释掉for result in query:,并用result = list(query)[-1]替换它。你知道吗

相关问题 更多 >

    热门问题