将图像添加到GUI后,Tkinter GUI未打开

时间:2017-06-30 06:43:02

标签: python python-2.7 user-interface tkinter

如果我在mainloop()上面注释掉代码的最后4行,那么我的Tkinter GUI工作正常。我想添加图片。如果我包含行,那么代码运行时不会出现任何错误,但它不显示GUI。添加图像可能会出现什么问题(我已尝试过所有.jpg,.png,.gif)? This is my GUI

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()

1 个答案:

答案 0 :(得分:2)

您正在混合gridpack。仅对父窗口小部件使用一个几何管理器:

例如,使用grid作为图片标签。

img = "download.png"
photo = ImageTk.PhotoImage(Image.open(img))
panel = tk.Label(main, image = photo)
panel.grid(row=3, column=0, columnspan=2)  # <---

enter image description here

相关问题