如何在 qt 中使用默认图标

Posted

技术标签:

【中文标题】如何在 qt 中使用默认图标【英文标题】:how to use default icons with qt 【发布时间】:2010-10-16 06:13:52 【问题描述】:

我只使用 Qt(虽然是 PyQt),并且当我打电话时我没有得到图标,例如QMessageBox.warning()。有没有办法使用平台的默认图标?目前我正在使用更完整的 QMessageBox 构造函数并调用 setIconPixmap。

【问题讨论】:

发布一些代码,您不必设置像素图来显示警告图标。这是在 Windows/Mac/Linux 上吗? 抱歉,我把原件弄丢了,但很简单。使用你的,它不起作用。 【参考方案1】:

http://doc.qt.io/qt-5/qmessagebox.html

来自上面的链接:

QMessageBox 支持四种预定义的消息严重性级别或消息类型,它们实际上仅在它们各自显示的预定义图标上有所不同。通过将 icon 属性设置为预定义的 Icons 之一来指定四种预定义的消息类型之一。

所以你应该使用 QMessageBox 构造函数:

QMessageBox ( Icon icon, const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent = 0, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint )

您可以使用以下图标之一:

http://doc.qt.io/qt-5/qmessagebox.html#Icon-enum

例如你可以为图标传递这个参数:QMessageBox::Warning

HTH! 问候

【讨论】:

【参考方案2】:

我不太熟悉通过 Python 使用 Qt 或使用 QMessageBox。但是,快速浏览文档意味着警告将使用警告图标,如果它们没有被更改,它应该是平台的默认图标。您是否尝试过查看 Qt 的错误跟踪系统以查看它是否是错误?或者为它提交错误/功能请求?

【讨论】:

【参考方案3】:

我不确定你是如何写下你对消息框的使用的,但我是这样使用它的:

from PyQt4 import QtGui
QtGui.QMessageBox.warning(parent, dialogTitle, dialogText)

如果这不会在您的消息框中产生警告图标,那么您可能需要考虑将您的 PyQt 升级到最新版本,因为过去我在一些 PyQt 修订版中遇到过类似的小错误。

【讨论】:

我做到了,就在今天...可能有一些我没有安装的图标库。除非您已经知道(或者是 qt 开发人员),否则请不要太担心;这对我来说不是什么大问题。干杯,尼古拉斯

以上是关于如何在 qt 中使用默认图标的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 QPushButton 的系统主题图标——Linux 上的 Qt Designer

如何使 Qt 图标(在菜单栏和工具栏中)更大?

Qt 应用程序的默认鼠标图标

如何在 Qt C++ 中根据主题更改图标?如果可用的主题是深色或浅色

如何在 Qt 应用程序中使用样式表更改 QPushButton 图标

Qt:更改 QListView 中的图标