如果我注释掉 mainloop() 上面代码的最后 4 行,我的 Tkinter GUI 工作正常。我想添加图像。如果我包含这些行,那么代码运行时不会给出任何错误,但它不显示 GUI。添加图像时可能出现什么问题(我已经尝试了所有 .jpg、.png、.gif)?
import Tkinter as tk
from PIL import ImageTk, Image
def show_answer():
Ans = (float(num1.get())**2)-(((float(num1.get()) - float(num2.get()))**2)/2)
blank.insert(0, Ans)
main = tk.Tk()
tk.Label(main, text = "Enter Num 1:").grid(row=0)
tk.Label(main, text = "Enter Num 2:").grid(row=1)
tk.Label(main, text = "The Area of pseodo square:").grid(row=2)
num1 = tk.Entry(main)
num2 = tk.Entry(main)
blank = tk.Entry(main)
num1.grid(row=0, column=1)
num2.grid(row=1, column=1)
blank.grid(row=2, column=1)
tk.Button(main, text='Quit', command=main.destroy).grid(row=4, column=0, pady=4)
tk.Button(main, text='Calculate', command=show_answer).grid(row=4, column=1, pady=4)
##img = "download.png"
##photo = ImageTk.PhotoImage(Image.open(img))
##panel = tk.Label(main, image = photo)
##panel.pack(side = "bottom", fill = "both", expand = "yes")
main.mainloop()
最佳答案
您正在混合使用grid
和pack
。仅对父窗口小部件使用一个几何管理器:
例如,使用 grid
作为图像标签。
img = "download.png"
photo = ImageTk.PhotoImage(Image.open(img))
panel = tk.Label(main, image = photo)
panel.grid(row=3, column=0, columnspan=2) # <---
关于python - 将图像添加到 GUI 后,Tkinter GUI 未打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44840175/