Qt QTableView: 根据 Header 长度设置列宽
要根据 Header 的长度来设置 QTableView 的列宽,可以使用以下方法:
- 获取 Header 的文本内容和长度。
QString headerText = tableView->horizontalHeader()->model()->headerData(section, Qt::Horizontal).toString();
int headerWidth = QFontMetrics(tableView->horizontalHeader()->font()).width(headerText);
- 设置列宽。
tableView->setColumnWidth(section, headerWidth);
完整的示例代码如下:
// 获取列数
int columnCount = tableView->horizontalHeader()->count();
// 遍历每一列
for (int section = 0; section < columnCount; ++section) {
// 获取 Header 的文本内容和长度
QString headerText = tableView->horizontalHeader()->model()->headerData(section, Qt::Horizontal).toString();
int headerWidth = QFontMetrics(tableView->horizontalHeader()->font()).width(headerText);
// 设置列宽
tableView->setColumnWidth(section, headerWidth);
}
请注意,上述代码假设 tableView 是一个有效的 QTableView 对象,并且已经设置了水平 Header 的 model。如果没有设置 model,可以使用 setModel() 方法设置一个有效的 model。
原文地址: https://www.cveoy.top/t/topic/qDb3 著作权归作者所有。请勿转载和采集!