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

2024-10-06 12:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个QTreeWidget项和信号CurrentItemChanged连接到一个基于数据库查找更新GUI的方法。在

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

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

在我自己存储对前一项的引用之前,我是否遗漏了一些内容?代码简单得令人沮丧:

^{1}$

Tags: 项目方法文档数据库内容信号选项gui
1条回答
网友
1楼 · 发布于 2024-10-06 12:28:30

This signal is emitted when the current item changes. The current item is specified by current, and this replaces the previous current item.

试试看:

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_())

enter image description here

相关问题 更多 >