我有許多使用Qt Designer創建的表單。 (Qt 4.8)Qt:在整個表單上應用字體更改
我想改變所有窗體的字體...從某處。
在Windows中,
QApplication::setFont(font);
完美。
遺憾的是,似乎是一個錯誤(我不知道這是否bug report恰好相關的)......而QApplication::setFont(font);
不會移植到OS X.
大二相同QT應用程序做任何事..我正在爲OS X手動執行此操作。發出信號並創建一個插槽來更新界面字體,以適用於所有受影響的UI。
我的問題:
我如何可以改變字體爲整個形式?我可以對每個包含文本的單個項目進行更改,但其中有很多......並且似乎應該有更好的方法。
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());
但是這樣的事情給我一個錯誤...
我該如何對整個UI進行更改?
他會回答一個樣式表嗎?但是使用QApplication :: font很複雜......我不知道如何爲表單設置它,或者如果它不會減慢很多事情......它將如何與不同的樣式表進行交互的形式有...
您可以重複throguth所有小工具和它的孩子們設置正確的字體。 – 2014-12-03 13:08:11