2010-04-08 125 views
1

我正在用PyQt製作Twitter客戶端,它使用WebKit繪製推文列表。現在我試圖使用CSS在WebKit小部件中設置背景圖像 - 但圖像不會顯示出來。這是CSS的相關部分:PyQt WebKit CSS背景圖片不顯示

body                    
{                    
    background-image: url("gradient2.jpg");           
} 

文件名拼寫正確,並位於同一目錄下的Python程序,這也是在那裏我開始從(所以圖像文件的程序應該在PWD中)。

要檢查WebKit是否以某種方式在錯誤的目錄中查找圖像,我通過strace運行程序,該程序會創建程序所有系統調用的日誌。令人驚訝的是,圖像的名稱沒有出現在日誌中 - 所以看起來好像WebKit甚至沒有嘗試找到它。

要驗證我的CSS全部由WebKit的使用時,我試圖將其更改爲一個堅實的背景色而不是圖像:

body                    
{                    
    background: #CCFFCC;           
} 

這工作。所以我知道使用了CSS,這不是問題。

難道WebKit拒絕在文件系統中使用「普通」文件,並且我不知何故必須在Qt Designer中創建某種包含我的圖像的「資源」文件?

回答

2

嘗試刪除引號。另外,請注意,如果您在「backround-image:」規則之後聲明瞭「background:」速記規則,則背景圖像將被覆蓋。另外,文件路徑應該與css文件相關,而不是源文件。

+0

我用雙引號,單引號,沒有引號,包括嘗試了「背景」,沒有它。另外,CSS在python源代碼中,我沒有使用單獨的CSS文件(我無法讓它工作,但是我不知道)。就好像更基本的東西是錯誤的。就像我在問題中所說的那樣,根據strace日誌,它看起來像甚至不想*打開圖像文件。 – Enfors 2010-04-08 20:51:01

+0

如果你給它一個絕對的url會發生什麼? – graphicdivine 2010-04-08 21:10:12

+0

用雙引號和絕對路徑,它*工作* - 令我非常驚訝。問題解決了,謝謝!但爲什麼strace日誌早些時候表明它甚至沒有在查找文件? 啊。我想我現在明白了。如果我沒有記錯,strace不會默認跟蹤子進程 - 它可能是打開文件的人之一。 – Enfors 2010-04-08 21:34:02

0

你可以使用背景圖片是這樣的:

body                    
{                    
    background-image: url("qrc:///gradient2.jpg");           
}