2014-12-16 4 views
1

테이블 10 행, 2 열, 첫 번째 열에 두 번째 템포 텍스트의 확인란이 있습니다.
복사 (그냥 인쇄)라는 버튼을 누른 후 cloumn 1의 모든 확인란을 선택해야합니다.

.............................................. ...............................................check state checkBox in table (pySide)

import PySide.QtCore as QtCore 
import PySide.QtGui as QtGui 


class chck(QtGui.QCheckBox): 
    def __init__(self, *args, **kwargs): 
     super(chck, self).__init__(*args, **kwargs) 

class TestTable(QtGui.QDialog): 
    def __init__(self, parent=None): 


     QtGui.QDialog.__init__(self, parent) 
     self.resize(300, 500) 
     self.myTable = QtGui.QTableWidget() 
     self.myTable.setColumnCount(2) 
     self.myTable.setRowCount(10) 

     self.copyButton = QtGui.QPushButton(self.tr("Copy")) 
     self.copyButton.clicked.connect(self.copy) 



     for i in range(0, self.myTable.rowCount()): 
      ok = chck('' +str(i+1)) 
      self.myTable.setCellWidget(i,0,ok) # set check box     
      item = QtGui.QTableWidgetItem("text" + str(i+1))# set tmp text 
      self.myTable.setItem(i,1,item) 


     buttonLayout = QtGui.QHBoxLayout() 
     buttonLayout.addStretch(1) 
     buttonLayout.addWidget(self.copyButton) 

     layout = QtGui.QVBoxLayout() 
     layout.addWidget(self.myTable) 
     layout.addLayout(buttonLayout) 

     self.setLayout(layout) 




    def copy(self): 
     for i in range(0, self.myTable.rowCount()): 
      print "Check box " + str(i+1) + " is :" # print status QCheckBox if is on or off 



tableView = TestTable() 
tableView.show() 

답변

0

것은 cellWidget와 체크 박스를 취득하고 사용 isChecked :

def copy(self): 
    for i in range(0, self.myTable.rowCount()): 
     checkbox = self.myTable.cellWidget(i, 0) 
     print "Check box " + str(i+1) + " is :", 
     print 'checked' if checkbox.isChecked() else 'not checked'