2012-05-03 16 views
0

我剛開始使用python,所以遇到問題。我到處搜索過,但我找不到類似的例子。 所以,問題如下:我使用QT-Designer製作了一個簡單的GUI。點擊分析按鈕即可填寫QTableWidget。 (你可以在圖片上看到) link for picturePython: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實例,並且您將通過移動下面的for循環中的這3行代碼(在其中創建CheckBox的實例)來實現此目的。

+0

謝謝tuoLarips,我沒有意識到..它現在工作正常。 <3 – Aleksandar

+0

不客氣:) – tuoLarips