Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改QTableView中的默认行大小_Python_Qt_Pyside_Qtableview - Fatal编程技术网

Python 更改QTableView中的默认行大小

Python 更改QTableView中的默认行大小,python,qt,pyside,qtableview,Python,Qt,Pyside,Qtableview,如何更改QTableView中的默认行大小,使其更小?我可以调用resizeRowsToContents(),但随后的插入仍然会在末尾添加默认大小的新行 我猜这可能与样式表有关,但我对影响视觉变化的因素不太熟悉 我在Python中使用PySide,但我认为这是一个一般性的问题 示例视图: 默认表外观 resizeRowsToContents()之后的表的外观 现在,如果我在末尾添加一个新的空行: 该死的,它使用默认的行高和所有额外的空间。Qt::SizeHintRole负责单元格的宽度和

如何更改QTableView中的默认行大小,使其更小?我可以调用resizeRowsToContents(),但随后的插入仍然会在末尾添加默认大小的新行

我猜这可能与样式表有关,但我对影响视觉变化的因素不太熟悉

我在Python中使用PySide,但我认为这是一个一般性的问题


示例视图:

默认表外观

resizeRowsToContents()之后的表的外观

现在,如果我在末尾添加一个新的空行:


该死的,它使用默认的行高和所有额外的空间。

Qt::SizeHintRole
负责单元格的宽度和高度。所以你可以:

someModel.setData(someIndex,QSize(width, height), Qt::SizeHintRole);
或者仅仅是这样:

someView.verticalHeader().setDefaultSectionSize(10);
我认为
setDefaultSectionSize
正是您想要的。恐怕没有其他简单的方法了

defaultSectionSize:int

此属性保存之前标题部分的默认大小 调整大小。此属性仅影响具有交互特性的节 或固定为其调整大小模式

如果不知道需要多少像素,请在应用
resizeRowsToContents()
rowhight()

所以应该是这样的:

resizeRowsToContents();
someView.verticalHeader().setDefaultSectionSize(someView.rowHeight(0));

六羟甲基三聚氰胺六甲醚。。。但我不知道像素的数量。我只想让QTableView显示数据,而不需要额外的空间。@JasonS在我看到你的截图后,行高是相同的,所以我编辑了我的答案,如果数据不是很复杂,它应该可以工作。
tableView.verticalHeader().setResizeMode(QHeaderView.ResizeToContents)
似乎工作得很好,但它是动态的,当我进行大量实时更新时,它会减慢我的应用程序。我真的只想得到标准的行大小-(当您不根据内容调整大小时,“标准”行高度是您得到的。它基于行的大小提示,该提示源自项委托的大小提示(除其他外)。如果您不喜欢该特定高度,只需将其更改为更可接受的高度(例如
table.fontMetrics().height()+6
)。不知何故,我看不出第二张图像和第三张图像之间有什么大的区别。如果有人被Jason的评论难住了,请看最后一行(在“toves”下面):所讨论的方法是
setSectionResizeMode
,而不是
setResizeMode