1
我是Qt新手,閱讀了所有關於樣式表的文檔,並且我幾乎知道如何樣式化我的應用程序。我的文件是這樣的:在Qt中加載外部樣式表
Project/ -> babel.pro resources.qrc gui/ -> QtFiles, stylesheet.qss app/ -> main.cpp
我主要如下所示:
int main(int ac, char **av) {
MyApplication app(ac, av);
MyWidget widget;
QFile File(":/gui/stylesheet.qss");
File.open(QFile::ReadOnly);
QString StyleSheet = QLatin1String(File.readAll());
app.setStyleSheet(StyleSheet);
widget.show();
return app.exec();
}
MyApplication.hpp:
class MyApplication : public QApplication {
public:
MyApplication(int argc, char **av) : QApplication(argc, av) {}
virtual ~MyApplication() {}
virtual bool notify(QObject *rec, QEvent *ev) {
try {
return QApplication::notify(rec, ev);
}
catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
exit(0);
}
return false;
}
};
最後MyWidget.cpp:
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
QVBoxLayout *mainLayout = new QVBoxLayout;
setFixedSize(1920, 1200);
setWindowTitle(tr("Babel"));
_tabWidget = new QTabWidget;
_tabWidget->addTab(new Home(), tr("Home"));
_tabWidget->addTab(new Contact(), tr("Contact"));
_tabWidget->resize(10, _tabWidget->height());
mainLayout->addWidget(_tabWidget);
setLayout(mainLayout);
}
我在babel.pro加入這一行(這是編譯一般的.pro):RESOURCES += resources.qrc
但我有運行應用程序時,這個錯誤:QIODevice::read: device not open
編輯:
我的資源文件是這樣的:
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
<file>/gui/stylesheet.qss</file>
</qresource>
</RCC>
您是否將樣式表文件添加到資源文件中? – SingerOfTheFall
是的,我添加了 /gui/stylesheet.qss 就像我在文檔 –
中讀到的那樣,你是否將它添加到'.qrc'文件中?如果是這樣,你添加了一個前綴,還是你的文件看起來像' /gui/stylesheet.qss '? –
SingerOfTheFall