PyQt/PySide中是否有默认图标?

use*_*844 25 python user-interface icons pyqt pyside

我正在阅读关于PySide的教程,我在想,我是否需要为每件事找到自己的图标,或者是否有某种方法可以使用一些内置图标.这样,如果我想让我的小gui在另一个桌面环境中运行,我就不需要找到一整套新的图标.

小智 38

你需要的是Pyside QIcon.fromTheme功能.Basicaly它使用当前系统主题中的所需图标创建QIcon对象.

用法:

undoicon = QIcon.fromTheme("edit-undo")

"编辑撤消" - 可在此处找到图标"类型"/"功能"的名称

这适用于X11系统,对于MacOSX和Windows,请查看QIcon文档 QIcon.fromTheme

编辑从网站上插入此内容,因为上次它是一个断开的链接.

static PySide.QtGui.QIcon.fromTheme(name [,fallback = QIcon()])

参数:

返回类型:

PySide.QtGui.QIcon

返回与当前图标主题中的name对应的PySide.QtGui.QIcon.如果在当前主题中找不到这样的图标,则返回后退.

可以在此处获取最新版本的freedesktop图标规范和命名规范:

要从当前图标主题中获取图标:

undoicon = QIcon.fromTheme("edit-undo")
Run Code Online (Sandbox Code Playgroud)

或者,如果要为不支持主题图标的平台提供有保证的回退,可以使用第二个参数:

undoicon = QIcon.fromTheme("edit-undo", QIcon(":/undo.png"))
Run Code Online (Sandbox Code Playgroud)

注意

默认情况下,只有X11支持主题图标.要在Mac和Windows上使用主题图标,您必须在PySide.QtGui.QIcon.themeSearchPaths()中捆绑一个兼容主题,并设置相应的PySide.QtGui.QIcon.themeName().

也可以看看


Nim*_*mar 8

还有另一种方法可以使用默认样式的标准像素图访问PyQt/PySide中的一些标准内置图标.例如,以下内容创建一个用于打开文件的图标:

self.style().standardIcon(QtGui.QStyle.SP_DialogOpenButton)
Run Code Online (Sandbox Code Playgroud)

有关标准像素映射的完整列表,请参阅:

http://srinikom.github.io/pyside-docs/PySide/QtGui/QStyle.html#PySide.QtGui.PySide.QtGui.QStyle.StandardPixmap

  • 如果您想在“self”不是上述之一的情况下使用它,“self”指的是“QtWidgets.QApplication”(在 Qt5 中)或“QtGui.QApplication”(在 Qt4 中)。 (3认同)

tov*_*eod 6

我不认为这是特定的任何绑定,你可以查看qt一般文档

看看这里这里

相关问题


eqz*_*qzx 6

在 中PyQt5,这是创建带有播放图标的按钮的简单示例:

play_button = QtGui.QPushButton('Play video')
play_button.setIcon(QtGui.QApplication.style().standardIcon(QtGui.QStyle.SP_MediaPlay))
Run Code Online (Sandbox Code Playgroud)

Qt5 文档提供了可能的 SP(“标准像素图”)图标的列表。请参阅enum QStyle::StandardPixmap此处: http: //doc.qt.io/qt-5/qstyle.html