【问题标题】:System theme icons and PyQt4系统主题图标和 PyQt4
【发布时间】:2009-06-15 19:25:28
【问题描述】:

我正在使用 PyQt4 模块在 python 中编写一个基本程序。我希望能够将系统主题的图标用于首选项对话框的图标之类的东西,但我不知道该怎么做。所以我的问题是,你如何获得图标的位置,但要确保它随系统的图标主题而变化?如果重要的话,我正在 ubuntu 9.04 下开发它,所以我使用的是 gnome 桌面。

【问题讨论】:

    标签: python icons pyqt4


    【解决方案1】:

    不幸的是,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 的更正

    【讨论】:

    • 新语法是QIcon.fromTheme('icon_name', fallback)。我花了一段时间才找到它!
    【解决方案2】:

    【讨论】:

    • 感谢您的回答 :) 虽然我想要一些不那么依赖 KDE 的东西,但我会接受这个作为答案,直到出现更好的东西。
    【解决方案3】:

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

    【讨论】:

    • 我也得出了同样的结论。我将写一个包含 KDE 和 Gnome 方法的答案。
    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多