如何在pyqt5中设置动态图像路径?

时间:2017-08-18 10:28:55

标签: python

这是我的代码

 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但它不起作用。 谁能帮我?先谢谢!

1 个答案:

答案 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]为nothingpatata为[2]和{{ 1}}是[3]。