我需要一个显示自动缩放的纯文本的Qt小部件。这意味着当我在其布局中调整具有此窗口小部件的窗口时,将字体大小调整为窗口小部件的大小,以尽可能大地显示字体中的文本以适合布局所指示的大小。自动换行可能是一种奖励。
我认为,有人已经实现了这样的小部件,但我无法谷歌。
答案 0 :(得分:2)
您可以在窗口的resize事件中执行此操作:
void MainWindow::resizeEvent(QResizeEvent*)
{
QFont f = label->font(); //Get label font
QFontMetrics metrics(f);
QSize size = metrics.size(0, label->text()); //Get size of text
float factorw = label->width() / (float)size.width(); //Get the width factor
float factorh = label->height() / (float)size.height(); //Get the height factor
float factor = qMin(factorw, factorh); //To fit contents in the screen select as factor
//the minimum factor between width and height
f.setPointSizeF(f.pointSizeF() * factor); //Set font size
label->setFont(f); //Set the adjusted font to the label
}