我有一个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());
Run Code Online (Sandbox Code Playgroud)
它看起来像:

任何想法为什么边界矩形太小?谢谢Stephen
如果您只是想绘制一个边界矩形(或相关的东西),您应该获得画家的字体指标,并为要显示的文本要求一个边界矩形.QFontMetrics :: boundingRect有不同版本,允许您指定包含矩形,因此将考虑自动换行.