【问题标题】:How to restore to normal to Qtreewidget Pyqt5? [closed]Qtreewidget Pyqt5如何恢复正常? [关闭]
【发布时间】:2021-01-31 04:02:55
【问题描述】:

我刚刚用QTreeWidget做了一个程序。但是我想在单击按钮时将其恢复正常,我的意思是它应该与启动时相同。我学会了如何删除带有蓝色水平线的选定部分。by

mytreeview.clearSelection()

查看图片 但是,如果有人扩大列宽,请检查第二张图片,“类型”列宽已从第一张图片增加。那么问题是我如何将其设置为正常意味着我的默认值如图 1 和想象有人通过拖动(位置交换)将“修改日期”的位置更改为“大小”列的位置。那么如何通过按按钮将其重置为正常?这是对 Qtreewidget 的一些基本疑问,所以我没有代码可以在这里编写。 任何帮助将不胜感激 谢谢你

【问题讨论】:

  • 实际上这是对 Qtreewidget 的一些基本疑问,所以我没有要编写的代码。我只需要一些函数来解决我的问题。我已经编辑了我的帖子。请检查,如果你不明白,请告诉我。 @musicamante

标签: python python-3.x qt pyqt5 qtreewidget


【解决方案1】:

您可以使用sectionSize() 收集和存储部分大小,并使用resizeSection() 恢复它。

为了恢复原始的逻辑索引,只需检查visualIndex(),如果它与逻辑索引不匹配,则使用moveSection()

        # ...
        header = self.table.horizontalHeader()
        self.sectionSizes = [header.sectionSize(s) for s in range(header.count())]

    def resetSections(self):
        header = self.table.horizontalHeader()
        for section, size in enumerate(self.sectionSizes):
            if header.visualIndex(section) != section:
                header.moveSection(header.visualIndex(section), section)
            header.resizeSection(section, size)

我强烈建议您仔细阅读和学习有关QTableWidget(及其继承类:QTableViewQAbstractItemView)以及QHeaderView 的文档,正如您所要求的一切在那些页面中清楚地解释了。

【讨论】:

  • 谢谢你!这对我帮助很大。实际上文档是为 c++ 编写的,这就是为什么我无法正确理解它。
  • @Hacker6914 官方 PyQt 文档非常有限,完成它不符合维护者的利益,因为其中 95% 只是一个 副本 Qt 官方文档。虽然如果你没有使用过 C++ 可能看起来有点不知所措,但实际上它比看起来要容易得多:几乎所有函数在 python 中的行为方式完全相同并且具有相同的参数,并且仍然可以找到小的异常寻找 PyQt 相关文档,甚至在 python shell 中使用help(class.function)。这只是习惯问题。
  • 只要记住两个简单的方面:每个函数都使用以下语法列出:returnType Class::function(positional arguments, [keyword arguments])。每个参数都被列为argumentType, argumentName,并且“关键字参数”与python中的完全相同(因此它们通常可以省略)。 void 表示该函数不返回任何内容,否则如果您重新实现该函数,您必须 返回该值类型。请注意,在某些情况下,函数返回数据,因为它们实际上修改了它的一些参数(这在 python 中通常是不可能的)->
  • -> 在这种情况下,PyQt 的行为方式与 C++ 文档建议的方式略有不同。一个典型的例子是QValidator.validate():在 C++ 中它只返回状态,如果需要,inputpos 值会被“动态”修改(因为 C++ 允许发送 reference到一个变量)。在 PyQt 中,该函数实际上返回所有参数:状态、输入和位置,因此可以更改这些值并根据 Qt 的要求返回它们。
猜你喜欢
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2019-03-21
  • 1970-01-01
相关资源
最近更新 更多