最近在做一个项目,需要能够调节界面的字体大小。
因为一个程序里有很多大小不一样的文字,所以无法通过 QApplication::setFont() 来实现。
尝试过应用自定义QStyle来调节字体大小,但是这种方式似乎只能在没有使用qss的情况下才能使用。
mStyle::mStyle(float i) :
QProxyStyle(/*QStyleFactory::create("fusion")*/)
{
m_i = i;
}
void mStyle::polish(QWidget *widget)
{
if (/*qobject_cast<QPushButton *>(widget)
|| qobject_cast<QComboBox *>(widget)
|| qobject_cast<QLineEdit *>(widget)
|| */qobject_cast<QLabel *>(widget)){
QLabel * lb = qobject_cast<QLabel *>(widget);
if(lb->objectName() == "settings"){
QFont f = lb->font();
qDebug()<<"polish"<<lb->text()<<f.pointSizeF()<<m_i;
f.setPointSizeF(f.pointSizeF()*m_i);
lb->setFont(f);// 如果程序应用了qss的话,这里的调用就不生效
qDebug()<<"polish"<<lb->font().pointSizeF();
}
//widget->setAttribute(Qt::WA_Hover, true);
}
}
我想尝试不用qss,直接用自定义QStyle来实现样式设计,可是对QStyle这个功能了解的实在是少,只能勉强该一改前景色背景色等等,类似边框、伪状态(如QPushButton的checked状态),或这要设置按钮的背景图片等等,都不懂。
希望指教一下要通过什么方式来实现字体调节这个功能,谢谢!