关于python:PyQt / PySide中是否有默认图标?

Are there default icons in PyQt/PySide?

我正在阅读Pyside的教程,我在想,我是否需要为每件事情找到自己的图标,或者有什么方法可以使用一些内置图标。这样,如果我想让我的小GUI在另一个桌面环境上运行,我就不需要找到一整套新的图标。


您需要的是pyside qicon.fromtheme函数。它从当前系统主题创建具有所需图标的qicon对象。

用途:

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

"edit undo"-此处可以找到图标"type"/"function"的名称

这适用于x11系统,对于MacOSX和Windows,请检查Qicon文档从主题

编辑从网站插入这个,自从上次它是一个断开的链接。

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

Parameters:

  • name – unicode
  • fallback – PySide.QtGui.QIcon

Return type:

PySide.QtGui.QIcon

Returns the PySide.QtGui.QIcon corresponding to name in the current icon theme. If no such icon is found in the current theme
fallback is returned instead.

The latest version of the freedesktop icon specification and naming specification can be obtained here:

  • http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
  • http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html

To fetch an icon from the current icon theme:

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

Or if you want to provide a guaranteed fallback for platforms that do not support theme icons, you can use the second argument:

1
undoicon = QIcon.fromTheme("edit-undo", QIcon(":/undo.png"))

Note

By default, only X11 will support themed icons. In order to use themed icons on Mac and Windows, you will have to bundle a compliant theme in one of your PySide.QtGui.QIcon.themeSearchPaths() and set the appropriate PySide.QtGui.QIcon.themeName() .

See also

  • PySide.QtGui.QIcon.themeName()
  • PySide.QtGui.QIcon.setThemeName()
  • PySide.QtGui.QIcon.themeSearchPaths()

< /块引用>


还有另一种方法可以使用默认样式中的标准pixmap访问pyqt/pyside中的一些标准内置图标。例如,下面创建一个用于打开文件的图标:

1
self.style().standardIcon(QtGui.QStyle.SP_DialogOpenButton)

有关标准像素地图的完整列表,请参见:

http://srinikom.github.io/pyside-docs/pyside/qtgui/qstyle.html pyside.qtgui.pyside.qtgui.qstyle.standardpixmap


我不认为这是特定于任何绑定的,您可以查看qt常规文档

看看这里和这里

相关问题


我一直找不到标准图标的图像,所以以后参考:http://nukesaq88.hatenablog.com/entry/2013/04/12/005525

我使用的代码(pyqt4,pyside可能类似):

1
2
3
4
    # In method of QMainWindow subclass
    stdicon = self.style().standardIcon
    style = QtGui.QStyle
    reload_foo = QtGui.QAction(stdicon(style.SP_BrowserReload), '&Reload', self)

如果(显然是自动生成的)qt文档在standardicons枚举表中有图片,那就太好了…


另一个使用标准图标的pyqt5示例(eqzx的答案对我不起作用):

1
2
3
4
 from PyQt5.QtWidgets import QApplication, QStyle
 from PyQt5.QtGui import QIcon

 desktop_icon = QIcon(QApplication.style().standardIcon(QStyle.SP_DesktopIcon)

PyQt5中,有一个简单的例子,创建一个带有播放图标的按钮:

1
2
play_button = QtGui.QPushButton('Play video')
play_button.setIcon(QtGui.QApplication.style().standardIcon(QtGui.QStyle.SP_MediaPlay))

qt5文档提供了可能的sp("标准pixmap")图标列表。见enum QStyle::StandardPixmap这里:http://doc.qt.io/qt-5/qstyle.html


在pyqt中,窗口图标默认为qt徽标。我认为您必须在GUI中找到自己的图标。