我有一個用 QT 5.9.5 開發的專案,所以是 C 。我有一個 GUI,我想用一個外部全域樣式表來描述小部件的外觀。我正在與 QTCreator 合作。我添加了一個名為“stylesheet.qss”的通用檔案,QTCreator 將其放入“其他檔案”目錄中。我還沒有創建資源檔案。只有“其他檔案”目錄中的 qss 檔案。為了呼叫這個檔案,我在mainwindow.cpp(mainwindow是用戶界面,mainwindow.ui)中寫了如下代碼:
QFile file(":/stylesheet.qss");
file.open(QIODevice::ReadWrite);
QTextStream in(&file);
QString text;
text = in.readAll();
file.close();
setStylesheet(text);
當我運行應用程式時,應用程式輸出給我以下問題:
QIODevice::read (QFile, ":/stylesheets.qss"): device not open
相反,如果我寫:
QFile file("stylesheet.qss");
而且如果我寫:
file.open(QIODevice::ReadOnly);
問題不會發生。但是,在所有情況下,變數 text 都是空的,我不能使用樣式表。檢查 file.errorString(),它給出:
"Unknown error"
并檢查 file.error(),它給出:
0
有人可以建議我一個解決方案或另一種向我的應用程式添加樣式表的方法嗎?謝謝你,馬可
uj5u.com熱心網友回復:
.qss在資源(.qrc)中添加您的檔案把你想
qss在你的程式中添加的這段代碼放在main.cpp:
#include "mainwindow.h"
#include <QApplication>
#include <QFile>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
/**
* Load the application style
*/
QFile styleFile(":/Style.qss");
styleFile.open(QFile::ReadOnly);
/**
* Apply the loaded stylesheet
*/
QString style(styleFile.readAll());
a.setStyleSheet(style);
MainWindow w;
w.show();
return a.exec();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/313869.html
