我有一个简单的QTableView中,我基本上是想效仿这样的:PyQt的设置列宽
view.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
但是,我不能实际使用,因为这对每一个单排,这是不可接受的要求sizeHint
我的情况,因为小部件在启动时需要响应,并且所有行的计算都需要很长时间。因此这不是一个选项。
我知道单个列的大小是什么,它总是相同的,并且总是具有最大高度的大小。然而,这个单元格的宽度并不总是一行中所有单元格中最宽的。我已经通过这样做了这些细胞的正确大小,但是这显然使所有细胞具有相同的大小,并且许多细胞现在太宽了。
view.horizontalHeader().setDefaultSectionSize(200)
view.verticalHeader().setDefaultSectionSize(100)
我也试图设置各列的宽度,但似乎没有任何效果上的宽度可言,像这样:
view.setColumnWidth(0, 5)
而且,设置各列的宽度不这很好,因为我不能预先知道他们会有多宽。
有什么方法可以使用(或模拟)ResizeToContents
方法(如上所示),但是不需要检查所有单元大小?
这正是我所期待的,非常感谢。只是一个后续问题。这完美地处理了列的宽度,但是,如果我尝试对垂直标题做同样的处理,它仍然在所有行上调用'sizeHint'。这在这种情况下并不是真正的问题,因为我知道我想要什么样的高度,但是我不明白为什么这不仅仅看着可见的行(它是不知道会有多少行可见?)。此外,如果我将垂直标题精度设置为ex。 2,所有的行仍然被检查。任何见解? – Pavlin
@Pavlin,很高兴你用这种方式找到一些解决办法。我像你一样使用它,没有适用于行的高度,所以我不能告诉你更多。你观察到-1,0或相同的行为? – PRMoureu
我尝试了各种不同的值,但都导致必须检查所有行。不管怎么说,多谢拉! – Pavlin