gpt4 book ai didi

python - pyqt QTreeView中选择行和列

转载 作者:行者123 更新时间:2023-11-30 23:02:36 25 4
gpt4 key购买 nike

我在 qtreeview 上有一个过滤器,可以重新创建行和列。一旦过滤器被删除所有文本。即过滤器=“”。 qtreeview 被重新创建。我希望根据用户过滤结果时的选择重新创建 qtreeview 时预选一行。

我知道我应该使用的方法是:树.setCurrentIndex(m)

我知道 m 应该是:m = QtCore.QModelIndex()

但是,我似乎无法在 QModelIndex 中设置 setCurrentIndex 满意的行和列。

我通过文本知道所选项目。计划在重新创建 qtreeview 时获取行索引。

qtreeview 设置如下:

  • 一个
    • 0
    • 1
  • b
    • 2
    • 3
  • c
    • 4
    • 5

最佳答案

列无法按您预期的方式工作。

在您的示例中,没有任何列,只有行。

要访问项目a,您应该执行以下操作:

>>> # setting up the model
>>> tree = QtGui.QTreeView()
>>> model = QtGui.QStandardItemModel()
>>> tree.setModel(model)

>>> # accessing data
>>> # To get item "a"
>>> a = tree.model().index(0, 0)
>>> a
<PySide.QtCore.QModelIndex(0,0,0x5805c40,QStandardItemModel(0x5805b30) ) at 0x7f9a81720148>
>>>
>> # to get item "a, 0"
>>> a0 = a.child(0, 0)
>>> a0
<PySide.QtCore.QModelIndex(0,0,0x7f9a88013d30,QStandardItemModel(0x5805b30) ) at 0x7f9a81720348>

请记住,Qt 中的所有内容都遵循父/子关系,包括 QTreeView。如果这个模型对您来说相当慢,您可以考虑提供方法来帮助您实现这一点(不要向 Qt 寻求帮助,因为 QProxyModel 已被废弃并且不应使用。

简而言之,项目 a 是 (0, 0) 处模型的子项。项目 b 位于 (1, 0) 处,依此类推。可以使用 a.child(row, column)a 引用项目 a 的子项。子级 0 位于 (0, 0),子级 1 位于 (1, 0)

关于python - pyqt QTreeView中选择行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420781/

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