如何将StandardPixmap添加到布局?

时间:2014-07-31 09:36:55

标签: python pyqt4 qpixmap

我正在尝试内置StandardPixmaps 显示在我的布局上。

到目前为止,我已设法访问标准像素图(PyQt4.QtGui.QStyle.SP_MessageBoxWarning),但似乎无法将其实际添加到我的布局中。我尝试使用setPixmap方法将其添加到QLabel,但这需要像素图,而不是standardPixmap。

我找到this answer on SO,这导致我使用了标准的Pixix,但我无法从这里取得更多进展。

1 个答案:

答案 0 :(得分:1)

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 doc建议使用返回standardIconQIcon方法。

如果您仍想使用QLabel来显示图标,则必须从QPixmap构建QIcon。您可以使用其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_()
相关问题