如何在PyQt4中向QWidget添加图片

15 投票
3 回答
67876 浏览
提问于 2025-04-15 19:25

我该怎么把一张图片添加到一个 QWidget 里呢?我找到了一些线索。可以先添加一个 Label,然后在这个标签里放一张图片。我需要知道 QPicture() 的参数是什么。可能我可以用的是 QLabel.setPicture(self.QPicture)

3 个回答

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()
15

QPicture 不是你想要的东西。QPicture 主要是用来记录和重放 QPainter 的命令。而你真正需要的是 QPixmap。你只需要给 QPixmap 的构造函数传一个文件名,然后用 QLabel.setPixmap() 把这个图像设置到标签上。

下面是一个用 Python 实现的例子:

label = QLabel() 
pixmap = QPixmap('path_to_your_image')
label.setPixmap(pixmap)
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 方法来显示图片。

撰写回答