首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pyqt5 QTreeWidget CurrentItemChanged信号发送整数作为上一项

Pyqt5 QTreeWidget CurrentItemChanged信号发送整数作为上一项
EN

Stack Overflow用户
提问于 2018-07-17 03:43:05
回答 1查看 1.9K关注 0票数 1

我已经将一个QTreeWidget项和信号CurrentItemChanged连接到一个基于DB查找来更新图形用户界面的方法。

CurrentItemChanged文档说它将把QTreeWidgetItems作为参数传递给该方法。首先是当前项目,然后是先前选择的项目。

我看到传递的是一个后面跟着一个整数的QTreeWidgetItem,可能是当前所选项目的列。这种行为似乎不是任何人的Pyqt5文档的一部分。

在我自己存储对前一项的引用之前,我是否遗漏了什么?代码非常简单:

代码语言:javascript
运行
复制
self.TreeWidget.currentItemChanged.connect(self.update) # signal connect

def update(self, old, new):
    # do stuff with old and new, both as as QTreeWidgetItems
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-17 05:02:45

此信号在当前项目更改时发出。当前项由current指定,这将替换以前的当前项。

试试看:

代码语言:javascript
运行
复制
import sys
from PyQt5 import QtWidgets, QtGui, QtCore

class Window(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)
        self.vlayout = QtWidgets.QVBoxLayout()

        # tree widget item
        tree_widget_item = QtWidgets.QTreeWidgetItem(['Item 1'])
        tree_widget_item.addChild(QtWidgets.QTreeWidgetItem(['Sub item 1']))  
        tree_widget_item.addChild(QtWidgets.QTreeWidgetItem(['Sub item 2']))

        # tree widget
        tree_widget = QtWidgets.QTreeWidget(self)
        tree_widget.addTopLevelItem(tree_widget_item)
        self.vlayout.addWidget(tree_widget)

        tree_widget.currentItemChanged.connect(self.current_item_changed)

    @QtCore.pyqtSlot(QtWidgets.QTreeWidgetItem, QtWidgets.QTreeWidgetItem)
    def current_item_changed(self, current, previous):
        print('\ncurrent: {}, \nprevious: {}'.format(current, previous))


application = QtWidgets.QApplication(sys.argv)
window = Window()
window.setWindowTitle('Tree widget')
window.resize(250, 180)
window.show()
sys.exit(application.exec_())

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51369081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档