tkinter label(标签)无法显示图片(空白)解决方法

# -*- coding: utf-8 -*-
"""
@author: 奋斗中的打工人
"""
from tkinter import *
from PIL import ImageTk
from PIL import Image as imim


class Test(Tk):
    def __init__(self):
        # 继承父类的构造方法
        super().__init__()
        img_open = imim.open("/Users/Desktop/fm.jpg")  # 打开图片
        img_png = ImageTk.PhotoImage(img_open)
        self.label_img = Label(self, image=img_png)  # 定义label

        self.label_img.pack()
        self.geometry("800x600")


a = Test()
a.mainloop()

运行结果如下图所示:

修改之后,加上

self.label_img.image = img_png

修改后的代码:

# -*- coding: utf-8 -*-
"""
@author: 奋斗中的打工人
"""
from tkinter import *
from PIL import ImageTk
from PIL import Image as imim


class Test(Tk):
    def __init__(self):
        # 继承父类的构造方法
        super().__init__()
        img_open = imim.open("/Users/Desktop/fm.jpg")  # 打开图片
        img_png = ImageTk.PhotoImage(img_open)
        self.label_img = Label(self, image=img_png)  # 定义label
        self.label_img.image = img_png  # 要重新进行赋值
        self.label_img.pack()
        self.geometry("800x600")


a = Test()
a.mainloop()

运行结果如下图所示:

图片显示正常。 

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
要实现在PyQt5中点击按钮后,在Label控件中显示动态图片,你可以通过连接按钮的clicked信号和一个槽函数来实现。在槽函数中,创建QMovie对象并将其设置为Label的动画。 以下是一个示例代码: ```python from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget, QPushButton from PyQt5.QtCore import Qt, QUrl from PyQt5.QtGui import QMovie class MainWindow(QWidget): def __init__(self): super().__init__() self.setWindowTitle("动态图片示例") self.layout = QVBoxLayout() self.label = QLabel() self.layout.addWidget(self.label) self.button = QPushButton("显示动态图片") self.button.clicked.connect(self.show_dynamic_image) self.layout.addWidget(self.button) self.setLayout(self.layout) def show_dynamic_image(self): self.movie = QMovie("path/to/animated_gif.gif") # 替换为你的动态图片路径 self.label.setMovie(self.movie) self.movie.start() if __name__ == "__main__": app = QApplication([]) window = MainWindow() window.show() app.exec_() ``` 在上面的代码中,我们创建了一个继承自QWidget的MainWindow类。在初始化方法中,我们创建了一个垂直布局,并将一个QLabel和一个QPushButton添加到布局中。我们通过将按钮的clicked信号与一个名为show_dynamic_image的槽函数连接来实现点击按钮后显示动态图片。 在show_dynamic_image槽函数中,我们创建了一个QMovie对象,并将动态图片的路径作为参数传递给它。然后,我们使用label的setMovie()方法将QMovie对象设置为label的动画,并调用movie的start()方法开始播放动画。 记得将代码中的"path/to/animated_gif.gif"替换为你自己的动态图片路径。运行代码后,点击按钮后应该能够在Label中看到动态图片的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立秋6789

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值