gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:45:42 25 4
gpt4 key购买 nike

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

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

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

在我自己存储对上一个项目的引用之前,我是否缺少某些内容?代码简单得令人沮丧:

self.TreeWidget.currentItemChanged.connect(self.update) # signal connect

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

最佳答案

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

关于python - Pyqt5 QTreeWidget CurrentItemChanged 信号发送整数作为前一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51369081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com