首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT FontMetrics::BoundingRect错误大小

QT FontMetrics::BoundingRect错误大小
EN

Stack Overflow用户
提问于 2014-05-07 21:22:47
回答 1查看 1.3K关注 0票数 2

我正在使用Qt5.2,并且我目前正在尝试从QTableView打印一个表,但是我遇到了这个问题,即根据它的内容计算行的高度。我现在得到的是下面的循环,它循环遍历QTableView行,并使用boundingRect函数获取每行的高度。

代码语言:javascript
复制
for(int r=0; r<rows; ++r) {
    //tempTable.resizeRowToContents(r);
    QString str = tempTable.model()->data(tempTable.model()->index(r,0)).toString();
    QFontMetrics fm(tempTable.font());
    QRect rect = fm.boundingRect(0,0,tempTable.columnWidth(0),0,(Qt::TextWordWrap),str);
    tempTable.setRowHeight(r,rect.size().height());
    totalHeight += tempTable.rowHeight(r);
}

不幸的是,这个函数返回了一些奇怪的结果,使得字符串的填充变得很大:

有没有办法解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2014-05-08 17:40:54

所以,最终,我找到了我的代码中导致问题的那部分。这个字符串,

代码语言:javascript
复制
tempTable.horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

我为了将列拉伸到页面宽度而设置的,不知何故以意想不到的方式影响了boundingRect的行为。在我删除它并使用setColumnWidth函数设置每一列的宽度后,一切看起来都很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23519070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档