2009-06-15 34 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