系统主题图标和PyQt4

时间:2009-06-15 19:25:28

标签: python icons pyqt4

我正在使用PyQt4模块在python中编写基本程序。我希望能够使用系统主题的图标来显示首选项对话框的图标,但我不知道如何执行此操作。所以我的问题是,你如何获得一个图标的位置,但确保它随着系统的图标主题而改变?如果重要的话,我在ubuntu 9.04下开发这个,所以我使用的是gnome桌面。

3 个答案:

答案 0 :(得分: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的修正

答案 1 :(得分:0)

答案 2 :(得分:0)

我不久前花了大量的时间研究这个问题,我的结论是,不幸的是,Qt并没有以跨平台的方式提供这种功能。理想情况下,QIcon类将具有文件打开,保存,“+”,“ - ”,首选项等的默认值,但考虑到它不是,您必须为您的桌面环境获取适当的图标。