2014-08-29 40 views
0

我想爲我的項目使用外部樣式表,並且無法使用QFile類打開它。我已經導入入.qrc文件,它的一部分看起來像這樣:Qt-QFile不打開.qss文件

<qresource prefix="stylesheets"> 
    <file>Resources/Stylesheet.qss</file> 
    </qresource> 

這是怎麼了在打開和使用文件:

QFile stylesheet(":/stylesheets/Resources/Stylesheet.qss"); 
if (stylesheet.open(QIODevice::ReadOnly | QIODevice::Text)) 
{ 
    newGameDialog.setStyleSheet(stylesheet.readAll()); 
    stylesheet.close(); 
} 

可能是什麼不對的?我正在使用Visual Studio 2013和最新的Qt和VS Qt插件。我還將該項目設置爲在「Qt Project Settings」中支持QML。 .qss文件看起來像這樣(如果直接作爲QString設置,它將起作用)。我不知道是否需要「進口」線:

import Qt 5.3.1 

QDialog 
{ 
    background-color: 'white'; 
} 

它正在讀它很好,但風格不適用。在調試模式下: debug

回答

0

QDialog不支持「background-color」,只有「backgroud:」。

(另外的想法,如果這並不工作: 也許忘了指定Q_OBJECT爲newGameDialog類

或者使用Qt Designer創建了QDialog,複製您的樣式源在樣式表屬性字段,並看看是否可行或如果設計器顯示錯誤,或者在測試對話框時正確應用樣式(Ctrl + R我認爲)。)

+0

Q_OBJECT存在。我已經刪除了「導入」行,手動編譯.qrc文件,現在它工作。何時使用「導入」行? – Venom 2014-08-30 00:21:44

+0

直到現在還沒有看到導入,你從哪裏得到它? – Thomas 2014-08-30 00:24:05

+0

我在搜索互聯網尋找指導時偶然發現它。我有正常的CSS經驗,但不是這樣。 – Venom 2014-08-30 00:28:39