如何更改QTableView中的默认行大小以使其更小?我可以调用resizeRowsToContents()
,但随后的插入仍会在末尾添加新行,这是默认大小。
我猜它可能与样式表有关,但我对影响视觉变化的东西不够熟悉。
我在Python中使用PySide,但我认为这是一个普遍的Qt问题。
示例视图:
默认表格外观
resizeRowsToContents()
之后表格的内容:
现在如果我在最后添加一个新的空白行:
Darn,它使用默认的行高,以及所有额外的空间。
答案 0 :(得分:8)
Qt::SizeHintRole
负责细胞的宽度和高度。所以你可以:
someModel.setData(someIndex,QSize(width, height), Qt::SizeHintRole);
或者只是这个:
someView.verticalHeader().setDefaultSectionSize(10);
我认为setDefaultSectionSize
正是您所寻找的。 AFAIK没有其他简单的方法。
defaultSectionSize:int
此属性保留之前标题部分的默认大小 大小调整。此属性仅影响具有Interactive的节 或修正为调整大小模式。
如果你不知道你需要多少像素,那么在用resizeRowsToContents()
rowHeight()
后尝试获得这个高度
所以它应该是这样的:
resizeRowsToContents();
someView.verticalHeader().setDefaultSectionSize(someView.rowHeight(0));