2017-05-21 30 views
0

我正在嘗試使用qdarkstyle主題。 我遵循的代碼,但我似乎無法加載樣式表。下面的是我如何加載在main.cpp中的代碼:從qrc文件加載.qss主題

QFile f(":qdarkstyle/style.qss"); 
if (!f.exists()) 
{ 
    printf("Unable to set stylesheet, file not found\n"); 
} 
else 
{ 
    f.open(QFile::ReadOnly | QFile::Text); 
    QTextStream ts(&f); 
    qApp->setStyleSheet(ts.readAll()); 
} 

但存在()始終是假的。該文件夾qdarkstyle是我的主要來源的子目錄

enter image description here

我的項目資源是這樣的:enter image description here

我用盡以下呼叫:

QFile f(":qdarkstyle/style.qss"); 
QFile f("://qdarkstyle/style.qss"); 
QFile f(":/qdarkstyle/style/qdarkstyle/style.qss"); 

,但我總是存在永遠是錯誤的。在我做錯了什麼

添加我的.pro文件

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = MediaManagerV2 
TEMPLATE = app 

DEFINES += QT_DEPRECATED_WARNINGS 


SOURCES += main.cpp\ 
     mainwindow.cpp 

HEADERS += mainwindow.h 

FORMS += mainwindow.ui 

RESOURCES += \ 
    resources.qrc \ 
    qdarkstyle/style.qrc 

鏈接到源

https://drive.google.com/file/d/0BwXCsqWT3wkXV1dYNzF1dFM4dTQ/view?usp=sharing

修復

修改後的代碼的任何想法

QApplication a(argc, argv); 
MainWindow w; 
w.show(); 

QFile f(":/qdarkstyle/style.qss"); 
if (!f.exists()) 
{ 
    printf("Unable to set stylesheet, file not found\n"); 
} 
else 
{ 
    f.open(QFile::ReadOnly | QFile::Text); 
    QTextStream ts(&f); 
    a.setStyleSheet(ts.readAll()); 
} 

基本移動顯示()以上

+0

你可以顯示你的.pro文件。 – eyllanesc

+0

您已將.qrc文件添加到您的.pro文件中: 'RESOURCES + = qdarkstyle/style.qrc' – eyllanesc

+0

Ive更新了上面並添加了我的.pro文件 – adviner

回答

1

你有.qrc文件添加到您的.pro:

RESOURCES += qdarkstyle/style.qrc 

並調用樣式表之前移動show()