2014-09-30 39 views
2

迄今爲止我發現的所有例子都是指資源文件中的背景圖片。就像:Qt樣式表,來自文件路徑的背景圖片

QFrame { 
    background-image: url(:/images/header.png); 
} 

我想知道,有沒有辦法直接從文件系統使用文件?例如:

 background-image: url("C:\temp\foo.jpg"); ???? 
    background-image: file("C:\temp\foo.jpg"); ???? 

我試過所有類型的網址,但都沒有工作。我是否總是必須在資源中添加文件?

+5

如果你使用反斜槓,你需要將它們轉義出來,比如'C:\\ temp \\ foo.jpg'。使用正斜槓通常更容易。 – 2014-09-30 13:14:56

+1

@RetiredNinja請注意:在qss中'G:/ 2/qt.jpg'有效,但'G:\\ 2 \\ qt.jpg「不起作用。你是完全正確的逃避,但在qss需要使用'G:/ 2/qt.jpg' – Chernobyl 2014-09-30 13:34:30

回答

8

您不一定需要將您的文件添加爲資源。試試這個例子:

QFrame{background-image: url("C:/temp/foo.jpg");} 

請注意標準斜槓,就像你在URL中使用的那樣 - 它們不是Windows的反斜槓。所以這一點,例如,將無法正常工作:

QFrame{background-image: url("C:\\temp\\foo.jpg");} /* Won't work! */ 

Windows的反斜槓是無效的QSS,甚至當你逃避它們。

你也可以使用相對路徑:

QFrame{background-image: url("temp/foo.jpg");} 

要小心,雖然,因爲路徑是相對於CWD在運行時,該用戶可能會改變。

+0

相對於*什麼*,雖然? – 2016-08-19 19:12:57

+0

@MichaelScheper https://en.wikipedia.org/wiki/Path_(computing)#Absolute_and_relative_paths – Chernobyl 2016-08-21 18:54:02

+0

我沒有問過什麼是相對路徑;我問道路是相對的。換句話說,在你的例子中,temp的假設父項是什麼? CWD?我不知道的一些基礎Qt路徑? – 2016-08-22 22:43:25