gpt4 book ai didi

c++ - Qt:在整个表单上应用字体更改

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:51:47 24 4
gpt4 key购买 nike

我有许多表单,是使用 Qt Designer 创建的。 (Qt 4.8)

我想从某处更改所有表单的字体...。

在 Windows 中,

QApplication::setFont(font);

完美运行。

不幸的是,似乎有一个错误(我不知道这 bug report 是否完全相关)......并且 QApplication::setFont(font); 没有做任何事情相同的 qt 应用程序移植到 OS X。

所以...我正在为 OS X 手动执行此操作。为所有受影响的用户界面发出一个信号并创建一个插槽来更新界面字体。

我的问题:

如何更改整个表单的字体?我可以为包含文本的每个单独项目更改它,但其中有很多......似乎应该有更好的方法。

SomeForm.cpp

#include "ui_SomeForm.h"

SomeForm::SomeForm(QWidget *parent) :
QDialog(parent),
ui(new Ui::SomeForm)
{
ui->setupUi(this);
...
#if !defined (Q_OS_WIN32)
connect(&source, SIGNAL(fontChanged(QFont)),
this, SLOT(refreshFonts()));
#endif
}

#if !defined (Q_OS_WIN32)
void SomeForm::refreshFonts()
{
ui->btn1->setFont(QApplication::font());
ui->btn2->setFont(QApplication::font());
ui->lbl1->setFont(QApplication::font());
ui->lbl2->setFont(QApplication::font());
......
}
#endif

这行得通,但它可能有很多项目......我想要的是类似

    ui->setFont(QApplication::font());

    ui->SomeForm->setFont(QApplication::font());

但是这样的事情给我一个错误......

如何为整个用户界面应用更改?

他会回答样式表吗?但是使用 QApplication::font 很复杂......我不知道如何为表单设置它或者它是否不会减慢很多......以及它如何与不同的样式表交互表格有...

最佳答案

使用样式表...

QString styleSheet = QString("font-size:%1px;").arg(QApplication::font().pointSize());
this->setStyleSheet(styleSheet);

关于c++ - Qt:在整个表单上应用字体更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27257442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com