在Tkinter中单击按钮时显示.jpg图像?

时间:2013-07-09 01:05:54

标签: python image user-interface tkinter

这似乎是一个相当简单的问题,但是当点击按钮时我无法显示jpg图像。这是我的代码(为了时间没有按钮代码):

from tkinter import *

#screen stuff here

canvas = Canvas(app)
canvas.grid(row = 0,column = 0)
photo = PhotoImage(file = "test.jpg")
canvas.create_image(0,0, image = photo)


def show_image():
    global canvas
    global photo
    canvas.create_image(0,0, image = photo)

#button that calls the function down here

谢谢!

1 个答案:

答案 0 :(得分:1)

这适用于Python2:

import Tkinter as tk
import ImageTk

def show_image():
    x = canvas.create_image(125, 125, image=tk_img)
    while True:
        print('show')
        canvas.itemconfigure(x, state=tk.NORMAL)
        button.configure(text = 'Hide')
        yield
        print('hide')        
        canvas.itemconfigure(x, state=tk.HIDDEN)
        button.configure(text = 'Show')        
        yield

root = tk.Tk()
canvas = tk.Canvas(root, width=250, height=250)
canvas.grid(row=0, column=0)
tk_img = ImageTk.PhotoImage(file='image.png')

button = tk.Button(
    root, text="Show", command=show_image().next, anchor='w',
    width=10, activebackground="#33B5E5")
button.grid(row=1, column=0)
root.mainloop()

在Python3中,PhotoImage can open GIF, PPM/PGM images。要打开其他格式,您可以need to install Pillow(Python3的PIL项目的分支)。