如何在PyQt4中向QWidget添加图片

15

如何向QWidget添加或导入图片?我发现了一个线索。我可以添加一个Label并在该标签中添加一个Picture。我需要QPicture()的参数。可能可以使用的是QLabel.setPicture(self.QPicture)

3个回答

19

这里是一些代码,它可以完成你和@erelender所描述的功能:

import os,sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
window.setGeometry(0, 0, 400, 200)

pic = QtGui.QLabel(window)
pic.setGeometry(10, 10, 400, 100)
#use full ABSOLUTE path to the image, not relative
pic.setPixmap(QtGui.QPixmap(os.getcwd() + "/logo.png"))

window.show()
sys.exit(app.exec_())

通用的QWidget没有setPixmap()方法。如果这种方法对你不起作用,你可以考虑创建一个自定义的继承自QWidget的小部件,并重写paintEvent方法来显示图像。


这会将QLabel放在我拥有的所有小部件之上,如果调整大小,您如何将其放在每个小部件后面并始终适合窗口宽度? - Ciasto piekarz

15

QPicture不是你想要的。它记录并重放QPainter命令。你需要的是QPixmap。给QPixmap构造函数传递一个文件名,并使用QLabel.setPixmap()将此像素图设置到标签中。

在Python中的实现示例如下:

label = QLabel() 
pixmap = QPixmap('path_to_your_image')
label.setPixmap(pixmap)

0
请在您的GUI脚本中使用此代码片段:
image = QtGui.QLabel(self)
image.setGeometry(50, 40, 250, 250)
pixmap = QtGui.QPixmap("C:\\address\\to\\your_image.png")
image.setPixmap(pixmap)
image.show()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接