使用QFontMetrics类的boundingRect成员函数计算给定文字得到文本整体长度大小。
#include <QPushButton>
#include <QApplication>
static QSize getTextSize(const QString &text)
{
/* 设置字体属性 */
QFont font;
font.setPixelSize(16);
/* 设置字体信息 */
QFontMetrics metrics(font);
return metrics.boundingRect(text).size();
}
int main(int argc, char **argv)
{
QApplication a(argc, argv);
QString text = "Hello world";
QPushButton button(text);
/* 通过text的内容设置按钮大小,并在此基础上扩大1.5倍 */
button.resize(getTextSize(text) * 1.5);
button.show();
return a.exec();
}