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
也会简化您的代码...     

要回复问题请先登录注册