Python 如何在QTreeWidget中设置小列宽?
我有一个带有两列的QTreeWidget,我正在尝试将第二列的宽度设置为一个非常小的值 如果我将宽度设置为35以上,它将正确调整大小。 但是,如果我尝试将宽度设置为35以下,它将始终以35结束 有趣的注意: 不同的样式似乎给出了不同的“地板”值。Fusion将不低于35,Win将不低于39 下面是一些示例代码,它将创建一个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
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:
大小调整部分
仅在交互式
或固定
时才起作用。其他模式不允许以编程方式设置分区大小。太棒了!非常感谢