填写QTableWidget表后,我打电话给:
table->resizeRowsToContents();
这会使行变窄但每行之间仍有很多填充,如下所示:
查看我发现的文档,我可以设置每行的高度:
table->verticalHeader()->setDefaultSectionSize(16);
这会移除填充并为我提供我想要的紧密间距:
但是,我担心使用像素的绝对大小。如果系统字体设置为大的字体,则文本可能不适合该行。
有没有办法删除行之间的填充,同时确保文本始终适合?
答案 0 :(得分:0)
使用QFontMetrics
方法实现的自定义委托,使其根据使用的字体返回正确的大小。
要计算正确的高度,您可以使用sizeHint()
方法的选项参数提供的int height = option.fontMetrics.height();
。
int height = option.fontMetrics.boundingRect(index.data().toString()).height();
或更准确地说
CMyDelegate* delegate = new CMyDelegate(tableView);
tableView->setItemDelegate(delegate);
编辑:如何使用代理:
{{1}}