我有 Qt 应用程序,应用了自定义样式表(以及一般的所有小部件),并在此样式表中包含自定义字体。但是当尝试获取某些小部件的字体时font()
方法返回不同的字体。我想获得a的字体QWidget
这是由样式表设置的。这font()
方法总是返回全局系统字体或由setFont()
,但不是由设置的字体setStyleSheet()
并用于在小部件中进行绘画。我需要字体根据字体大小进行一些计算。我使用 Qt 4.6。如何获得样式表设置的小部件的真实字体(即应用程序运行时显示的字体)?
经过一番调查后,我发现如果我将定义的样式表应用于某些小部件,我可以获得正确的字体信息(由样式表定义)myWidget->font()
方法。另外,当我将样式表设置为整体时MainWindow
我可以获得正确的字体信息font()
所有小部件的方法MainWindow
包含。但是,当我将样式表设置为实例时QApplication
the font()
所有小部件的方法返回默认字体或之前设置的字体setFont()
。为什么这样?
您可以检索特定小部件的字体,读取其属性,如下所示:
//Get pushbutton font.
QFont font = ui->pushButton->property("font").value<QFont>();
qDebug() << font.family() << font.pointSize();
//Get MainWindow font.
QFont font2 = property("font").value<QFont>();
qDebug() << font2.family() << font2.pointSize();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)