Jas*_*n S 3 python qt qtableview pyside
如何更改QTableView中的默认行大小,使其更小?我可以调用resizeRowsToContents()
,但后续插入仍然在末尾添加新行,这是默认大小.
我猜它可能与样式表有关,但我不太熟悉影响视觉变化的东西.
我在Python中使用PySide,但我认为这是一个普遍的Qt问题.
示例视图:
默认表格外观
表后面的内容resizeRowsToContents()
如下:
现在,如果我在末尾添加一个新的空白行:
Darn,它使用默认行高,以及所有额外空间.
Qt::SizeHintRole
负责细胞的宽度和高度.所以你可以:
someModel.setData(someIndex,QSize(width, height), Qt::SizeHintRole);
Run Code Online (Sandbox Code Playgroud)
或者就是这样:
someView.verticalHeader().setDefaultSectionSize(10);
Run Code Online (Sandbox Code Playgroud)
而且我认为这setDefaultSectionSize
正是你在寻找什么.AFAIK没有其他简单的方法.
defaultSectionSize:int
在调整大小之前,此属性保留标题部分的默认大小.此属性仅影响具有"交互"或"固定"作为其调整大小模式的节.
如果你不知道你需要多少像素,然后尝试运用后能得到这个高度resizeRowsToContents()
与rowHeight()
所以它应该是这样的:
resizeRowsToContents();
someView.verticalHeader().setDefaultSectionSize(someView.rowHeight(0));
Run Code Online (Sandbox Code Playgroud)