python - 获取一个 Qtreewidget 中的位置并将另一个 Qtreewidget 扩展到同一位置

标签 python qt pyqt

我的 QT 应用程序中有两个 QTreeWidget,使用 python (PyQt4)。

我想要

手动将 TreeWidget 1 展开为一个项目,然后。 如果此项目位于 TreeWidget 2 中,则使 TreeWidget 2 展开为同一项目。

原因是我有 2 个选项卡,每个选项卡都有一个树形小部件。

请原谅,我不是一个经验丰富的程序员,而且一直在苦苦挣扎。

谢谢

最佳答案

这个问题不太详细,因为它没有指定什么算作“相同”项目,也没有说明哪些项目可以扩展。

但是,这个简单的演示脚本应该提供一个合理的起点:

from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.tree1 = QtGui.QTreeWidget(self)
        self.tree2 = QtGui.QTreeWidget(self)
        layout = QtGui.QHBoxLayout(self)
        for tree in (self.tree1, self.tree2):
            tree.header().hide()
            tree.itemExpanded.connect(self.handleExpanded)
            tree.itemCollapsed.connect(self.handleCollapsed)
            for text in 'one two three four'.split():
                item = QtGui.QTreeWidgetItem(tree, [text])
                for text in 'red blue green'.split():
                    child = QtGui.QTreeWidgetItem(item, [text])
            layout.addWidget(tree)

    def handleExpanded(self, item):
        self.syncExpansion(item, True)

    def handleCollapsed(self, item):
        self.syncExpansion(item, False)

    def syncExpansion(self, item, expand=True):
        if item is not None:
            tree = item.treeWidget()
            if tree is self.tree1:
                tree = self.tree2
            else:
                tree = self.tree1
            text = item.text(0)
            for other in tree.findItems(text, QtCore.Qt.MatchFixedString):
                other.setExpanded(expand)

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.setGeometry(300, 500, 300, 300)
    window.show()
    sys.exit(app.exec_())

关于python - 获取一个 Qtreewidget 中的位置并将另一个 Qtreewidget 扩展到同一位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19764789/

相关文章:

c++ - 我想在qt中创建一个自定义标题栏

qt - QGraphicsScene 中 QWidget 的图形错误

python - matplotlib 图从 QT 抛出 TypeError

python - 检测/确认打开QInputDialog

python - TensorFlow One 热编码器?

python - 如果不是内存,如何直接输出gdb中变量的类型?

python - QWidget::mouseMoveEvent 在光标悬停在子部件上时不触发

python - 在 PySide PyQt 中拖放 QAbstractItemModel

python - 用于加载嵌套在 JSON 文件的嵌套键中的语法

python 临时文件