系统主题图标与PyQt4
我正在用Python写一个简单的程序,使用的是PyQt4这个模块。我想要在程序里使用系统主题的图标,比如设置对话框的图标,但我不知道该怎么做。所以我想问,怎么才能找到一个图标的位置,并确保它能随着系统的图标主题而变化?如果有关系的话,我是在ubuntu 9.04下开发的,使用的是gnome桌面。
3 个回答
0
我最近花了一些时间自己研究这个问题,得出的结论是,遗憾的是,Qt并没有提供跨平台的这个功能。理想情况下,QIcon类应该有一些默认的图标,比如打开文件、保存、加号、减号、设置等,但因为它没有这些默认图标,所以你需要根据你使用的桌面环境去找合适的图标。
0
使用 PyKDE4 的 KIcon 类:
7
很遗憾,Qt似乎不支持获取特定主题的图标。不过,对于KDE和Gnome这两个环境,有一些方法可以实现。
KDE的方法相对优雅,这也很合理,因为Qt是KDE的工具包。你不需要使用PyQt4.QtGui类中的QIcon,而是使用PyKDE4.kdeui类中的KIcon。下面是一个例子:
from PyKDE4.kdeui import *
icon = KIcon("*The Icon Name*")
你可以在这里查看PyKDE这个类的文档,点击这里。
对于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())
编辑:感谢CesarB的更正。