2016-12-04 62 views
0

我正在做一個程序,而不是使用菜單欄來調用不同的事件,我想把它們放在TreeWidget中。與設計師,我設計了界面,並添加以下項目:如何連接雙擊treewidget項目

  • 項A:
    • 項目A1
    • 項目A2
  • 項B:
    • 項B1

我想要的是,當按下doubleclick時,每個項目執行一個事件,方法......不同。爲了簡化示例,請將文本更改爲標籤。

我的代碼:

import sys 
from PyQt5.QtWidgets import QApplication, QMainWindow, QTreeWidgetItem 
from PyQt5 import uic, 


class Ventana(QMainWindow): 
    def __init__(self): 
     QMainWindow.__init__(self) 
     uic.loadUi('ui2.ui', self) 
     self.treewidget.itemDoubleClicked.connect(self.insertar) 

    def insertar(self): 
     self.item = self.treewidget.currentItem() 
     if self.item == 'a1': 
      self.label1.setText('ok') 
     elif self.item == 'a2': 
      self.label2.setText('yes') 
     elif self.item == 'b1': 
      self.label3.setText('No') 

app = QApplication(sys.argv) 
ventana = Ventana() 
ventana.show() 
app.exec_() 

我已經看過了幾個例子(都是指一個文件瀏覽器)和文件,但我很綠色PyQt的。而且我沒有完成清理。 我希望你能幫助我,對不起英文是谷歌翻譯

回答

1

你想比較0列的QTreeWidgetItem.text,而不是項目本身。

if self.item.text(0) == "a1": 
    self.label1.setText('ok') 
+0

謝謝,我現在可以繼續該程序。 –