Python 如何在QTreeWidget中设置小列宽?

Python 如何在QTreeWidget中设置小列宽?,python,resize,pyside2,qtreewidget,qheaderview,Python,Resize,Pyside2,Qtreewidget,Qheaderview,我有一个带有两列的QTreeWidget,我正在尝试将第二列的宽度设置为一个非常小的值 如果我将宽度设置为35以上,它将正确调整大小。 但是,如果我尝试将宽度设置为35以下,它将始终以35结束 有趣的注意: 不同的样式似乎给出了不同的“地板”值。Fusion将不低于35,Win将不低于39 下面是一些示例代码,它将创建一个QTreeWidget,添加一些项目,然后设置并打印第二个列宽几次 以下是输出(至少在我这边): 所需的输出将是: This value should be 100: 100

我有一个带有两列的QTreeWidget,我正在尝试将第二列的宽度设置为一个非常小的值

如果我将宽度设置为35以上,它将正确调整大小。 但是,如果我尝试将宽度设置为35以下,它将始终以35结束

有趣的注意: 不同的样式似乎给出了不同的“地板”值。Fusion将不低于35,Win将不低于39

下面是一些示例代码,它将创建一个QTreeWidget,添加一些项目,然后设置并打印第二个列宽几次

以下是输出(至少在我这边):

所需的输出将是:

This value should be 100:  100
This value should be 35:  35
This value should be 5:  5
This value should be 10:  10
我只是想澄清一下,我并没有多次尝试设置列宽。此代码这样做是为了演示将宽度设置为大于或小于35的值的各种结果。
我的愿望只是能够将列宽设置为小于35的任何值。

标题视图中节大小的下限受限制。此属性的默认值是根据当前字体、样式和样式计算的。但是,可以通过编程方式设置该值,所有调整大小模式都将遵守该值

因此,将示例更改为如下所示:

class Window(QDialog):
    def __init__(self, parent=None):
        ...
        self.layout().addWidget(self.tree)

        print('default minimum size:', self.tree.header().minimumSectionSize())
        self.tree.header().setMinimumSectionSize(0)
        ...
default minimum size: 35
This value should be 100:  100
This value should be 35:  35
This value should be 5:  5
This value should be 10:  10
您应该看到如下输出:

class Window(QDialog):
    def __init__(self, parent=None):
        ...
        self.layout().addWidget(self.tree)

        print('default minimum size:', self.tree.header().minimumSectionSize())
        self.tree.header().setMinimumSectionSize(0)
        ...
default minimum size: 35
This value should be 100:  100
This value should be 35:  35
This value should be 5:  5
This value should be 10:  10
通过将其设置为
-1
,可以恢复默认的最小大小



NB
大小调整部分
仅在
交互式
固定
时才起作用。其他模式不允许以编程方式设置分区大小。

太棒了!非常感谢