无法在函数中显示图像 tkinter
这是我的代码
def new_grille():
global cc
global tab
global tableau
x = cc[0]
y = cc[1]
fenetre = tk.Tk()
fenetre.title('Gomoku : Coup joueur Blanc')
fenetre.attributes('-fullscreen', True)
fenetre.bind('<Escape>', lambda e: fenetre.destroy())
fenetre.config(bg='#FFFFFF')
tableau = tk.Canvas(fenetre, width = 1700, height = 1500, bg ="#FFFFFF")
tableau.pack(side = tk.BOTTOM, pady=100)
img = Image.open('boutton quitter.png')
img_quitter = ImageTk.PhotoImage(img)
boutton_quitter = tk.Button(fenetre, width=45, height=7,image = img_quitter, command=lambda x="": on_closing())
boutton_quitter.image = img_quitter
boutton_quitter.place(x=1500, y=100)
boutton_quitter.pack()
我想在'boutton_quitter'按钮上显示一张图片('boutton_quitter.png'),但是出现了一个错误(_tkinter.TclError: image "pyimage13" doesn't exist),我尝试了很多方法,但都没有成功,请帮帮我 :)
我看过不同的解决方案,比如使用toplevel方法和尝试把图片存储在一个全局函数里,但要么我搞错了,要么就是不管用。
1 个回答
0
你不能同时使用两种布局管理器,比如 boutton_quitter.place(x=1500, y=100)
和 boutton_quitter.pack()
。你需要选择一种布局管理器来满足你的需求。
当使用 fenetre.attributes('-fullscreen', True)
时,不要把布局管理器的值设置得太高,比如使用 place()
。使用 pack()
就可以满足你的需求。
我评论的是我们不需要的部分。
代码片段:
import tkinter as tk
from PIL import Image, ImageTk
#cc = 0
def new_grille():
#global cc
#global tab
global tableau
fenetre = tk.Tk()
fenetre.title('Gomoku : Coup joueur Blanc')
# fenetre.attributes('-fullscreen', True)
fenetre.bind('<Escape>', lambda e: fenetre.destroy())
fenetre.config(bg='#FFFFFF')
tableau = tk.Canvas(fenetre, width = 700, height = 500, bg ="#FFFFFF")
tableau.pack(side = tk.BOTTOM, pady=100)
img = Image.open('p2.png')
img_quitter = ImageTk.PhotoImage(img)
boutton_quitter = tk.Button(fenetre, width=250, height=350,image = img_quitter, command=lambda x="": on_closing())
boutton_quitter.image = img_quitter
boutton_quitter.place(x=100, y=100)
#boutton_quitter.pack()
fenetre.mainloop()
if __name__ == "__main__":
new_grille()
截图: