如何恢复到Qtreewidget Pyqt5的正常状态?

问题描述

我刚刚用QTreeWidget编写了一个程序。但是我想在单击按钮时将其恢复为正常状态,这意味着它应该与启动时的状态相同。我了解了如何删除显示为蓝色水平线的所选部分。by

// ... other views
.navigationBarItems(leading:
    Button(action:{
      self.isSheetPresented.toggle()
    }) {
      Text("display")
    }
    .frame(width: 25,height: 45)
)

...

} // end of NavigationView
.sheet(isPresented: $isSheetPresented) {    // << here !!
  Textfield("Hello",text: $binding)
}

检查图像

the blue tab line

但是,如果有人扩大了列宽,请检查第二张图片

enter image description here

,“类型”的列宽已从第一张图片开始增加。然后问题是如何将其设置为“ normal”,即图片显示认值, 1,想象有人通过拖动(位置交换)将“修改日期”的位置更改为“大小”列的位置。然后如何按按钮将其重置为正常状态?这是有关Qtreewidget的一些基本疑问,因此我在这里没有代码可写。 任何帮助将不胜感激 谢谢你

解决方法

您可以使用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)的文档以及{{3 }},因为您要问的所有内容在这些页面中都有明确说明。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...