2013-06-02 4 views
0

내가 할 :QTreeWidget 다시 쓰기 >>> QTreeView with checkbox?

class Window(QtGui.QWidget): 

    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     self.modelTree = QtGui.QTreeView() 
     self.model = QtGui.QStandardItemModel() 
     self.addItems(self.model, data) 
     self.modelTree.setModel(self.model) 
     self.modelTree.connect(self.modelTree, QtCore.SIGNAL('clicked(QModelIndex)'), self.treefunction) 
    def treefunction(self, index): 
     print index.model().itemFromIndex(index).text() 

     '''if item.checkState(column) == QtCore.Qt.Checked: 
      print "checked", item.text(column) 
     if item.checkState(column) == QtCore.Qt.Unchecked: 
      print "NOT checked",item.text(column)''' 

    def addItems(self, parent,elements): 
     column = 0 
     clients_item = QtGui.QTreeWidgetItem(parent, ['Serwis']) 
     clients_item.setData(column, QtCore.Qt.UserRole, 'serwis 111') 
     clients_item.setExpanded(True) 


     item_1 = QtGui.QTreeWidgetItem(clients_item, ['Wartswa1']) 
     item_1.setData(column, QtCore.Qt.UserRole, 'Wasrtwas 1') 
     item_1.setCheckState(column, QtCore.Qt.Unchecked) 

     item_2 = QtGui.QTreeWidgetItem(clients_item, ['Wartswa2']) 
     item_2.setData(column, QtCore.Qt.UserRole, 'Wasrtwas 2') 
     item_2.setCheckState(column, QtCore.Qt.Unchecked) 

내가 행을 선택하거나 선택하지 않은 경우 정보를 얻을합니다. 이 예제는 QTreeWidget에서 찾았습니다. QTreeView을 사용하여이 작업을 수행 할 방법을 찾습니다. treefunction을 다시 쓰는 방법?

답변

1

당신이 찾고있는 것은 Qt::CheckStateRole입니다. treefunction에서

는 수행

if self.model.data(index, Qt.CheckStateRole) == Qt.Checked: 
    print 'Checked!' 
elif self.model.data(index, Qt.CheckStateRole) == Qt.Unchecked: 
    print 'Unchecked!' 
+0

정확하게, 감사 :) – user7172