我有一个简单的 QTableView,我基本上想模拟这个:
view.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
然而,我不能实际使用它,因为这会在每一行上调用
sizeHint
,这对于我的情况是不可接受的,因为小部件需要在启动时响应并且计算所有行需要很长时间。因此,这不是一个选择。我知道单个列的大小始终相同,并且始终是具有最大高度的列。但是,该单元格的宽度可能并不总是一行中所有单元格中最宽的。我通过这样做使这些单元格变为正确大小,但这显然使所有单元格的大小相同,许多单元格现在太宽了。
view.horizontalHeader().setDefaultSectionSize(200)
view.verticalHeader().setDefaultSectionSize(100)
我还尝试了设置单独的列宽,但似乎对宽度没有任何影响,就像这样:
view.setColumnWidth(0, 5)
此外,单独设置列宽并不是很好,因为我无法预先知道它们的宽度。有没有办法使用(或模拟)上面展示的“ResizeToContents”方法,但不需要检查所有单元格的大小?
sizeHint
。在这种情况下,这并不是真正的问题,因为我知道我想要的高度,但是我不明白为什么它不仅查看可见行(难道它不知道将有多少行可见吗?)。此外,如果我将垂直标题精度设置为例如2,则仍将检查所有行。有任何见解吗? - Pavlin