我有一个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的不同版本允许您指定一个包含矩形,因此将考虑自动换行。

09-06 02:45