我刚开始使用python,所以我遇到了问题。我到处搜索,但我找不到类似的例子。 所以,问题在于:我使用QT-Designer制作了一个简单的GUI。点击按钮分析即可填写QTableWidget。 (如图所示) link for picture
当我选择一个复选框时,其余的都是随机选择的,我不知道为什么。 正如我所说,我是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
答案 0 :(得分:3)
您只创建了一个CheckBox实例并将其放在10个不同的位置,这是错误的。你必须制作10个CheckBox实例,你将通过在下面的for循环下移动那些你正在创建CheckBox实例的3行代码来实现这一点。