2016-12-04 61 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

谢谢,我现在可以继续该程序。 –