2014-06-24 2 views
1

사용자가 QTreeWidgetItem을 클릭 할 때 트리거되는 함수가 있습니다. 프로그래밍 방식으로 항목을 "클릭"하는 방법이 있는지 궁금합니다. 나는 시도했다.QTreeWidgetItem을 프로그래밍 방식으로 클릭하는 방법

.setCurrentIndex(index) 
.setCurrentItem(item) 

그러나이 방법은 항목을 "활성"으로 설정하지만 onClick 기능을 트리거하지는 않는다.

+0

onClick 함수에 대한 추가 정보를 제공하십시오. 코드에서 어디에 살며, 정상적인 상황에서 어떻게 트리거됩니까? – qurban

답변

1
  • 의 onclick에 신호 treeWidget.currentItemChanged를 연결
  • 현재 항목을 가져 오기 및 setCurrentItem(item) 방법
여기

treeWidget.currentItemChanged.connect(onClick) 
previousItem = treeWidget.currentItem() 
treeWidget.setCurrentItem(item) 

def onClick(current, previous): 
    print current.text(0) if current is not None else None # put the whatever index your item has 
    print previous.text(0) if previous is not None else None 
+0

질문과 관련하여이 대답의 의미가 무엇인지 궁금합니다. 'setCurrentItem'은 실제로 질문자와 달리 아이템 클릭에 해당합니까? – Trilarion

+0

죄송합니다. OP의 게시 된 코드 바로 아래에있는 줄을 읽지 않았습니다. 나는 OP에서 더 많은 정보를 얻으려고 노력한다. 감사 – qurban

1

입니다 사용하여 변수

  • 변경에 현재 항목을 저장 QTreeWidget의 항목에 대한 마우스 클릭을 시뮬레이트하는 일부 코드 스 니펫. 나는 그것이 당신을 도울 수 있기를 바랍니다.

    # get the QTreeWidget object 
    treeWidget = self.form.treeWidget 
    # obtain the 0th child item of the 0th top level item 
    child = treeWidget.topLevelItem(0).child(0) 
    # obtain the rectangular coordinates of the child item 
    rect = treeWidget.visualItemRect(child) 
    # simulate the mouse click within the rectangular coordinates 
    QTest.mouseClick(treeWidget.viewport(), Qt.LeftButton, Qt.NoModifier,rect.center()) 
    
  • 관련 문제