2009-06-15 70 views
8

我正在使用PyQt4模塊在Python中編寫一個基本的程序。我希望能夠使用系統主題的圖標來顯示偏好設置對話框的圖標,但我不知道如何操作。所以我的問題是,你如何得到一個圖標的位置,但確保它隨着系統的圖標主題而改變?如果它很重要,我在ubuntu 9.04下開發它,所以我使用的是gnome桌面。系統主題圖標和PyQt4

回答

7

不幸的是,似乎Qt不支持獲取特定主題的圖標。對於KDE和Gnome都有這樣的方法。

KDE方式非常優雅,考慮到Qt是KDE的工具包,這很有意義。而不是使用PyQt4.QtGui類QIcon,而是使用PyKDE4.kdeui類KIcon。這方面的一個例子是:

from PyKDE4.kdeui import * 
icon = KIcon("*The Icon Name*") 

看到PyKDE文檔這個類,here

爲gnome獲得支持的一種方法是使用python gtk包。它不如kde的方式好,但它的功能不亞於此。它可以像這樣使用:

from PyQt4 import QtGui 
from gtk import icon_theme_get_default 

iconTheme = icon_theme_get_default() 
iconInfo = iconTheme.lookup_icon("*The Icon Name*", *Int of the icon size*, 0) 
icon = QtGui.QIcon(iconInfo.get_filename()) 

請參閱Icon Theme classIcon Info class的文檔。

編輯:感謝校正CesarB

+0

Qt是KDE的工具包,而不是窗口管理器。 – CesarB 2009-06-20 18:51:19

0

我花了一個體面的數額研究這個我不久前,我的結論是,不幸的是,Qt不提供跨此功能平臺時尚。理想情況下,QIcon類將具有文件打開,保存,'+',' - ',首選項等的默認設置,但考慮到它不需要爲桌面環境獲取適當的圖標。

+0

我得出了同樣的結論。我將寫出一個包含KDE和Gnome方法的答案。 – Cdsboy 2009-06-16 00:49:11