我正在使用 PyQt4 模块在 python 中编写一个基本程序。我希望能够将我的系统主题的图标用于首选项对话框的图标之类的东西,但我不知道如何做到这一点。所以我的问题是,你如何获得一个图标的位置,但要确保它随着系统的图标主题而变化?如果重要的话,我正在 ubuntu 9.04 下开发它,所以我使用的是 gnome 桌面。
问问题
3704 次
3 回答
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())
请参阅Icon Theme 类和Icon Info 类的文档。
编辑:感谢 CesarB 的更正
于 2009-06-16T01:02:39.567 回答
0
不久前我自己花了很多时间研究这个,我的结论是,不幸的是,Qt 没有以跨平台的方式提供这个功能。理想情况下,QIcon 类将具有文件打开、保存、“+”、“-”、首选项等的默认值,但考虑到它不必为您的桌面环境获取适当的图标。
于 2009-06-16T00:26:37.173 回答
0
使用 PyKDE4 KIcon 类:
于 2009-06-15T23:44:44.637 回答