python无法显示动图_Tkinter 用一个button指令触发frame显示图片,Frame为何不能动态显示图片呢?...

# -*- coding:utf-8 -*-

from Tkinter import *

from PIL import Image, ImageTk

root = Tk()

image_frame = Frame(root)

image_file = Image.open("F:\\Pie.jpg")

im = ImageTk.PhotoImage(image_file)

image_label = Label(image_frame,image = im).pack(side = LEFT,padx = 5)

image_frame.pack()

root.mainloop()

这样显示图片是没问题的

然后改由按钮触发,显示图片

# -*- coding:utf-8 -*-

from Tkinter import *

from PIL import Image, ImageTk

root = Tk()

image_frame = Frame(root)

def create_image_label():

image_file = Image.open("F:\\Pie.jpg")

im = ImageTk.PhotoImage(image_file)

image_label = Label(image_frame,image = im)

image_label.grid(row = 3, column = 0, sticky = NW, pady = 8, padx = 20)

button = Button(image_frame,text='猛击这里',anchor = 'center',command = create_image_label)

button.grid(row = 2, column = 0, sticky = NW, pady = 8, padx = 20)

image_frame.pack()

root.mainloop()

怎么猛击都不显示,泪奔了

但是当我在create_image_label()体的最后一句故意加个错误代码时,尽管后台报错,但是图片显示了

# -*- coding:utf-8 -*-

from Tkinter import *

from PIL import Image, ImageTk

root = Tk()

image_frame = Frame(root)

def create_image_label():

image_file = Image.open("F:\\Pie.jpg")

im = ImageTk.PhotoImage(image_file)

image_label = Label(image_frame,image = im)

image_label.grid(row = 3, column = 0, sticky = NW, pady = 8, padx = 20)

image_label.show()

button = Button(image_frame,text='猛击这里',anchor = 'center',command = create_image_label)

button.grid(row = 2, column = 0, sticky = NW, pady = 8, padx = 20)

image_frame.pack()

root.mainloop()

frame要怎么样做,才能动态更新呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里提供一个使用tkinter库编写的例子,包括两个界面,一个主界面和一个显示界面,点击主界面的按钮可以触发显示界面的显示。 ```python import tkinter as tk class MainFrame(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.create_widgets() def create_widgets(self): self.btn_show = tk.Button(self, text="显示界面", command=self.show_frame) self.btn_show.pack(pady=50) def show_frame(self): self.master.show_frame(DisplayFrame) class DisplayFrame(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.create_widgets() def create_widgets(self): self.label = tk.Label(self, text="这是显示界面") self.label.pack(pady=50) self.btn_close = tk.Button(self, text="关闭界面", command=self.close_frame) self.btn_close.pack() def close_frame(self): self.master.show_frame(MainFrame) class App(tk.Tk): def __init__(self): super().__init__() self.title("按钮触发另一个界面显示") self.geometry("300x200") self.frames = {} self.create_frames() def create_frames(self): main_frame = MainFrame(self) display_frame = DisplayFrame(self) self.frames[MainFrame] = main_frame self.frames[DisplayFrame] = display_frame main_frame.grid(row=0, column=0, sticky="nsew") display_frame.grid(row=0, column=0, sticky="nsew") self.show_frame(MainFrame) def show_frame(self, frame): self.frames[frame].tkraise() if __name__ == "__main__": app = App() app.mainloop() ``` 在这个例子中,主界面中有一个按钮,点击按钮可以触发显示界面的显示显示界面中有一个标签和一个按钮,点击按钮可以关闭显示界面,回到主界面。 在App类中,我们使用了一个字典来存储所有的frame,使用show_frame方法来切换显示frame。在MainFrame和DisplayFrame中,我们分别实现了按钮的响应方法,当点击按钮时,会调用App类的show_frame方法来切换显示的界面。 运行程序后,可以看到主界面上有一个“显示界面”的按钮,点击按钮后会切换到显示界面,显示界面中有一个“关闭界面”的按钮,点击按钮后会回到主界面。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值