0

我刚开始使用python,所以遇到了问题。我到处搜索,但找不到类似的例子。因此,问题如下:我使用 QT-Designer 制作了一个简单的 GUI。通过单击按钮分析来填写 QTableWidget。(如您在图片上看到的)图片 链接

当我选择一个复选框时,其余的都是随机选择的,我不知道为什么。正如我所说,我是 Python 的新手,所以好的解释对我来说意义重大。这是源代码:

import sys
from PyQt4 import QtGui,QtCore
from IDCS import *

class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.connect(self.ui.analyseButton, QtCore.SIGNAL('clicked()'), self.doAnalyse)
        self.connect(self.ui.quitButton, QtCore.SIGNAL('clicked()'), QtGui.qApp, QtCore.SLOT('quit()'))

    def doAnalyse(self):
        self.ui.tableWidget.setRowCount(10)

        chkBoxItem = QtGui.QTableWidgetItem()
        chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
        chkBoxItem.setCheckState(QtCore.Qt.Unchecked)       

        for i in range(10):
            self.ui.tableWidget.setItem(i, 0, chkBoxItem)
            self.ui.tableWidget.setItem(i, 1, QtGui.QTableWidgetItem("description %s" % (i+1)))
            self.ui.tableWidget.setItem(i, 2, QtGui.QTableWidgetItem("name %s" % (i+1)))
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = MyForm()
    myapp.show()
    sys.exit(app.exec_())e
4

1 回答 1

3

您只制作了 CheckBox 的一个实例并将其放在 10 个不同的地方,这是错误的。您必须创建 10 个 CheckBox 实例,您将通过在下面的 for 循环下移动您正在创建 CheckBox 实例的那 3 行代码来做到这一点。

于 2012-05-03T00:49:37.363 回答