gpt4 book ai didi

python - PyQt 设置列宽

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:01 27 4
gpt4 key购买 nike

我有一个简单的 QTableView,我基本上想模拟它:

view.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)

但是,我实际上不能使用它,因为它在每一行上调用 sizeHint,这在我的情况下是 Not Acceptable ,因为小部件需要在启动时响应并且计算需要很长时间对于所有行。因此,这不是一种选择。

我知道单个列的大小,它总是相同的,并且总是高度最大的。但是,此单元格的宽度可能并不总是一行中所有单元格中最宽的。通过这样做,我已经使这些单元格的大小正确,但这显然会使所有单元格的大小相同,而且现在很多单元格都太宽了。

view.horizontalHeader().setDefaultSectionSize(200)
view.verticalHeader().setDefaultSectionSize(100)

我也尝试过设置单独的列宽,但这似乎对宽度没有任何影响,如下所示:

view.setColumnWidth(0, 5)

此外,设置单独的列宽也不是很好,因为我无法提前知道它们的宽度。

是否有任何方法可以使用(或模拟)ResizeToContents 方法(如上所示),但不需要检查所有单元格大小?

最佳答案

您是否尝试使用 setResizeContentsPrecision 优化 ResizeToContents 模式? ?

Sets how precise QHeaderView should calculate the size when ResizeToContents is used. A low value will provide a less accurate but fast auto resize while a higher value will provide a more accurate resize that however can be slow.

The number precision specifies how many sections that should be consider when calculating the preferred size.

The default value is 1000 meaning that a horizontal column with auto-resize will look at maximum 1000 rows on calculating when doing an auto resize.

Special value 0 means that it will look at only the visible area. Special value -1 will imply looking at all elements.

关于python - PyQt 设置列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44978217/

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