如何将StandardPixmap添加到布局中?
我正在尝试在我的布局中显示内置的标准图标。
到目前为止,我已经成功获取了一个标准图标(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_()