2012-05-03 3 views
0

Я только начал работать с python, поэтому я столкнулся с проблемой. Я искал везде, но я не мог найти подобного примера. Итак, проблема в следующем: я создал простой графический интерфейс с помощью QT-Designer. QTableWidget заполняется нажатием кнопки Analyze. (как вы можете видеть на картинке) link for picturePython: CheckBox-es в столбце QTableWidget

Когда я выбираю один checkBox, остальные из них выбираются случайным образом, и я не знаю почему. Как я уже сказал, я новичок в 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 

ответ

3

Вы делаете только один экземпляр CheckBox и положить его в 10 различных местах, и это неправильно. Вы должны сделать 10 экземпляров CheckBox, и вы сделаете это, переместив эти 3 строки кода, в которых вы создаете экземпляр CheckBox, в цикле for ниже.

+0

Спасибо tuoLarips, я не понял, что .. он отлично работает сейчас. <3 – Aleksandar

+0

Добро пожаловать :) – tuoLarips

Смежные вопросы