QTableView如何设置行高?

Posted

技术标签:

【中文标题】QTableView如何设置行高?【英文标题】:How to set row height of QTableView? 【发布时间】:2013-10-10 19:32:44 【问题描述】:

我有QTableViewQAbstractTableModel。我要求行的高度等于 24。我知道这样做的唯一方法是调用 QTableView::setRowHeight。由于模型是动态的,它可能会添加新行,但我不想每次添加新行时都调用setRowHeight

如何配置 QTableView 使其对新添加的行使用相同的高度,或者可以向模型发送行的高度?

【问题讨论】:

【参考方案1】:

对于 Qt 版本

QHeaderView *verticalHeader = myTableView->verticalHeader();
verticalHeader->setResizeMode(QHeaderView::Fixed);
verticalHeader->setDefaultSectionSize(24);

对于 Qt 版本 >= 5 使用

QHeaderView *verticalHeader = myTableView->verticalHeader();
verticalHeader->setSectionResizeMode(QHeaderView::Fixed);
verticalHeader->setDefaultSectionSize(24);

如果该功能不适用于垂直标题,您可能必须在每次添加新行时调用 setRowHeight()

【讨论】:

我认为最好给与函数名称不同的指针命名,否则您可能会遇到名称冲突,例如如果你从 QTableView 构造函数 QHeaderView *vh = myTableView->verticalHeader(); 如果verticalHeader已经在作用域内,那么直接调用setResizeModesetDefaultSectionSize就可以了,不用担心变量遮蔽,也不需要复制本地指针。跨度> QHeaderView 限制了传递给setDefaultSectionSize 的值,因此您可能需要在设置默认大小之前调用setMinimumSectionSizesetMaximumSectionSize

以上是关于QTableView如何设置行高?的主要内容,如果未能解决你的问题,请参考以下文章

大型 QAbstractTableModel 的 QTableView 动态行高

Qtableview滚轮缩放

“行高改变”的 QTableView 信号或事件

通过 HTML 渲染掌握 QTableView 中的行高

QTableView根据内容自动调整列宽行高

QTableView根据内容自动调整列宽行高