微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

QLabel sizehint太小

如何解决QLabel sizehint太小

| 我有一个QAbstractItemDelegate,在paint方法中,我试图从标签中绘制文本。但是我看到的问题是QLabel的大小提示对于包含的文本总是太小。我怎样才能解决这个问题?例如:
QLabel *testlabel = new QLabel();
testlabel->setText(\"This is some test text that doesnt fit:\");
testlabel->adjustSize();

QRect rect(testlabel->geometry());
Qt::Alignment alignFlags = testlabel->alignment();

painter->setFont(testlabel->font());
painter->drawRect(rect);
painter->drawText(rect,alignFlags,testlabel->text());
然后看起来像: 有什么想法为什么边界矩形太小? 谢谢 史提芬     

解决方法

如果您只是想绘制一个边界矩形(或其他相关的东西),则应该获取画家的字体规格,并为要显示的文本要求一个边界矩形。有QFontMetrics :: boundingRect的不同版本,它允许您指定一个包含矩形,因此将考虑自动换行。     ,为什么不使用ѭ1来获取sizehint?似乎更可靠,因为
adjustSize();geometry()
取决于实际绘制在某物上的标签。但是您不绘制标签(QWidget),而仅绘制文本(QString),所以
adjustSize/geometry
sizeHint
失败的可能性更大。 请参阅:http://doc.qt.io/qt-4.8/qwidget.html#sizeHint-prop 编辑:哦,使用
sizeHint
也会简化您的代码...     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。