我正在使用PyQt4模块在python中编写基本程序。我希望能够使用系统主题的图标来显示首选项对话框的图标,但我不知道如何执行此操作。所以我的问题是,你如何获得一个图标的位置,但确保它随着系统的图标主题而改变?如果重要的话,我在ubuntu 9.04下开发这个,所以我使用的是gnome桌面。
答案 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 class和Icon Info class的文档。
编辑:感谢CesarB的修正答案 1 :(得分:0)
使用PyKDE4 KIcon类:
答案 2 :(得分:0)
我不久前花了大量的时间研究这个问题,我的结论是,不幸的是,Qt并没有以跨平台的方式提供这种功能。理想情况下,QIcon类将具有文件打开,保存,“+”,“ - ”,首选项等的默认值,但考虑到它不是,您必须为您的桌面环境获取适当的图标。