如何将StandardPixmap添加到布局中?

2 投票
1 回答
3606 浏览
提问于 2025-04-18 15:28

我正在尝试在我的布局中显示内置的标准图标

到目前为止,我已经成功获取了一个标准图标(PyQt4.QtGui.QStyle.SP_MessageBoxWarning),但似乎无法将其真正添加到我的布局中。我尝试通过 setPixmap 方法将它添加到 QLabel,但这个方法需要的是一个图标,而不是标准图标。

我在StackOverflow上找到这个答案,这让我了解了标准图标,但从这里开始我就没能再有任何进展。

1 个回答

2

PyQt4.QtGui.QStyle.SP_MessageBoxWarning 是一个枚举值,而不是一个图像。

如果你想从中获取一个图像,可以把它传给当前使用的样式的 standardPixmap 方法。

举个例子:

from PyQt4 import QtGui

if __name__ == '__main__':
    app = QtGui.QApplication([])
    label = QtGui.QLabel()
    label.setPixmap(app.style().standardPixmap(QtGui.QStyle.SP_MessageBoxWarning))
    label.show()
    app.exec_()

不过,standardPixmap 方法现在被认为是过时的。Qt 的文档建议使用 standardIcon 方法,它会返回一个 QIcon

如果你还是想用 QLabel 来显示你的图标,你需要从得到的 QIcon 创建一个 QPixmap。你可以使用它的某个 pixmap 方法来做到这一点:

from PyQt4 import QtGui

if __name__ == '__main__':
    app = QtGui.QApplication([])
    label = QtGui.QLabel()
    icon =  app.style().standardIcon(QtGui.QStyle.SP_MessageBoxWarning)
    label.setPixmap(icon.pixmap(32))
    label.show()
    app.exec_()

撰写回答