系统主题图标和 PyQt4
我正在使用 PyQt4 模块用 python 编写一个基本程序。 我希望能够使用系统主题的图标来执行首选项对话框的图标等操作,但我不知道如何执行此操作。 所以我的问题是,如何获取图标的位置,但确保它随系统的图标主题而变化? 如果重要的话,我正在 ubuntu 9.04 下开发这个,所以我使用 gnome 桌面。
I'm writing a basic program in python using the PyQt4 module. I'd like to be able to use my system theme's icons for things like the preference dialog's icon, but i have no idea how to do this. So my question is, how do you get the location of an icon, but make sure it changes with the system's icon theme? If it matters, i'm developing this under ubuntu 9.04, so i am using the gnome desktop.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不幸的是,Qt 似乎不支持获取特定主题的图标。 KDE 和 Gnome 都有办法做到这一点。
KDE 的方式相当优雅,考虑到 Qt 是 KDE 的工具包,这是有道理的。 您不使用 PyQt4.QtGui 类 QIcon,而是使用 PyKDE4.kdeui 类 KIcon。 例如:
请参阅此类的 PyKDE 文档,此处。
获得 gnome 支持的一种方法是使用 python gtk 包。 它不如 kde 方式那么好,但仍然有效。 它可以这样使用:
请参阅 图标主题类 的文档和图标信息类。
编辑:感谢 CesarB 的更正
Unfortunately, It appears that Qt does not support getting icons for a specific theme. There are ways to do this for both KDE and Gnome.
The KDE way is quite elegant, which makes sense considering that Qt is KDE's toolkit. Instead of using the PyQt4.QtGui class QIcon, you instead use the PyKDE4.kdeui class KIcon. An example of this is:
see the PyKDE documentation for this class, here.
One way to gain support for this for gnome is to use the python gtk package. It is not as nice as the kde way, but it works none the less. It can be used like this:
See the documentation for the Icon Theme class and Icon Info class.
EDIT: thanks for the correction CesarB
使用 PyKDE4 KIcon 类:
http://api.kde.org/ pykde-4.2-api/kdeui/KIcon.html
Use the PyKDE4 KIcon class:
http://api.kde.org/pykde-4.2-api/kdeui/KIcon.html
不久前我自己花了相当多的时间研究这个问题,我的结论是,不幸的是,Qt 并没有以跨平台的方式提供这个功能。 理想情况下,QIcon 类将具有文件打开、保存、“+”、“-”、首选项等的默认设置,但考虑到这一点,您不必为您的桌面环境获取适当的图标。
I spent a decent amount of researching this myself not long ago, and my conclusion was that, unfortunately, Qt doesn't provide this functionality in a cross-platform fashion. Ideally the QIcon class would have defaults for file open, save, '+', '-', preferences, etc, but considering it doesn't you'll have to grab the appropriate icon for your desktop environment.