【问题标题】:PyQt: get the current QTreeWidget itemPyQt:获取当前的 QTreeWidget 项
【发布时间】:2014-11-13 13:36:49
【问题描述】:

我目前有一个名为“treeWidget”的 QTreeWidget,但在我的一生中,我无法弄清楚如何获取所选 treeWidget 分支的索引值或文本。

self.treeWidget 看起来像:
用户
-收件箱
-已发送
-草稿
-垃圾

我需要知道选择了哪个分支,以便在分支的相应文件夹中显示文件夹。我一直在尝试理解 Qt 文档,但我完全被 C++ 难住了。 PyQt 文档没有任何示例。我已经到处搜索了三天,试图修补并找出答案,但不断出现错误。

我认为我最接近的是这样的:

self.connect(self.treeWidget,SIGNAL("itemSelectionChanged()"), self.loadAllMessages) def loadAllMessages(自我,文件夹): 项目 = self.treeWidget.currentItem()

我需要先设置选择模式还是什么?非常感谢所有帮助!

【问题讨论】:

    标签: python qt pyqt qtreewidgetitem


    【解决方案1】:

    试试这个

    #remove the old way of connecting
    #self.connect(self.treeWidget,SIGNAL("itemSelectionChanged()"), self.loadAllMessages)
    self.treeWidget.itemSelectionChanged.connect(self.loadAllMessages)
    def loadAllMessages(self, folder):
        getSelected = self.treeWidget.selectedItems()
        if getSelected:
            baseNode = getSelected[0]
            getChildNode = baseNode.text(0)
            print getChildNode
    

    【讨论】:

    • 这样也可以得到选中子的索引号吗?看来我不能只用 '.indexOfChild' 代替 '.text'。 PyQt 文档说“int indexOfChild (self, QTreeWidgetItem achild)”,但我不知道我应该把什么作为 QTreeWidgetItem achild 部分......
    • 你需要使用 indexFromItem 来找到它。类似 itmIndex =self.treeWidget.indexFromItem(baseNode)
    • 嗯...试过
      print self.treeWidget.indexFromItem(baseNode)
      但它一直在吐出“”。尝试改变不同的东西,但无法让它发挥作用......有什么想法吗?
    猜你喜欢
    • 2012-11-13
    • 2019-01-09
    • 2015-01-13
    • 2012-02-16
    • 2015-05-23
    • 2023-02-09
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多