2013-07-03 6 views
0

나는 Pyhthon과 Qt를 처음 사용하므로 기본적인 질문이다. 내가 원하는 것은 QTreeWidget에서 항목을 클릭하면 어떤 항목이 클릭되었는지 알려주는 이벤트 핸들러가 호출된다는 것입니다. 내가 노력 코드는 다음과 같습니다PyQt4에서 클릭에 반응하는 방법 QTreeWidget

self.dir_tree = QTreeWidget() 
    self.dir_tree.setColumnCount (3) 
    self.dir_tree.setHeaderLabels (("File", "Type", "Size")) 
    self.dir_tree.connect (dir_tree, SIGNAL ("itemClicked (QTreeWidgetItem*, int)"), self.onClickItem) 

def onClickItem (self, column): 
    print (column) 

이 실행되지 않는 오류 코드입니다 : 내가 잘못 뭐하는 거지

TypeError: arguments did not match any overloaded call: 
    QObject.connect(QObject, SIGNAL(), QObject, SLOT(),Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'function' 
    QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'function' 
    QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'function' 

? 그리고 이것과 관련된 질문 : 클릭 한 항목을 어떻게 알 수 있습니까?

이 튜토리얼을 찾을 수 없으므로 어떤 제안이라도 환영합니다.

도움 주셔서 감사합니다.

답변

1

질문이 너무 일찍 묻자, 많은 실험을 한 후에 답을 찾았습니다. self.dirtree를 언급하지 않고 자기 대신 self.dir_tree에서 연결하는 것이 잘못된 코드입니다.

self.connect (self.dir_tree, SIGNAL ("itemClicked(QTreeWidgetItem*, int)"), self.onClickItem) 

그리고 일부는 다음과 같은 콜백을 주도 실험 : 그래서 올바른 코드가 있어야한다

def onClickItem (self, item, column): 
    print (item, column) 

항목이 추가 정보를 파생 클래스 내 경우에는 클릭 QTreeWidgetItem 자체 (를 말합니다 : 여전히 잘 작동 함) 및 클릭 된 열의 열.

마지막 질문은 여전히 ​​있습니다. 나는 아직도 신호/슬롯의 좋은 이해가 없습니다. 좋은 튜토리얼을 가리키는 포인터는 언제나 환영합니다.