这是我的代码
def setimage(self):
self.image_label.setAutoFillBackground(True)
filename = QtWidgets.QFileDialog.getOpenFileName(self, 'insert image', r'C:\Users\PristineSofts\Demo\Images','image (*.jpg *.png *.icon *.gif)')
print(filename)
self.image_label.setStyleSheet("QLabel{border:2px solid #d6d6d6;\n"
"background-image:url(" +filename+ ");\n"
"边界半径:30像素;} \ n&#34)
我正在尝试动态设置标签上的图像,但这段代码对我不起作用。它显示文件名中的路径正确,但它显示空白,窗口关闭。我也使用QPixmap但它不起作用。 谁能帮我?先谢谢!
答案 0 :(得分:0)
您可以使用标签:
# Make sure you load this library
from PyQt5.QtGui import QPixmap
# And then this should work
def setimage(self):
filename = QtWidgets.QFileDialog.getOpenFileName(self, 'insert image', r'C:\Users\PristineSofts\Demo\Images','image (*.jpg *.png *.icon *.gif)')
print("path is " + filename[0] " and I don't need " + filename[1])
pngfile = QPixmap(filename[0]) # We create the image as a QPixmap widget, using your filename.
self.image_label.setPixmap(pngfile) # And then we add it like this.
注意:如果仍有问题,请确保正确提供路径。此外,您可能需要在打印后执行self.image_label.clear()
。
编辑:文件名似乎是一个元组,因此您需要从中选择所需的项目。 filename [0]将是路径字符串。 filename [1]将是不需要的数据图像(*.jpg *.png *.icon *.gif)
。
在python中,您通常会在元组,列表或dicts中获取数据,并通过指定数据item[number of index]
的索引来轻松选择数据。请注意,python的索引从0开始,而不是从1开始。
示例:如果我想在此列表中选择patata
:
mytuple = ("something", "nothing", "patata", "test")
我只会使用mytuple[2]
,因为索引[0]为something
,索引[1]为nothing
,patata
为[2]和{{ 1}}是[3]。