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

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

最佳答案

您正在混合使用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

关于python - 将图像添加到 GUI 后,Tkinter GUI 未打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44840175/

相关文章:

python - Flask request.form 为空,而 request.get_data() 不是

python - 如何在SVC模型中设置特定阈值并生成混淆矩阵?

python - 如何在 PYTHON 中正确打印阿拉伯文本

python - 使用 __getattr__ 会导致 TypeError : 'str' object is not callable - Python 2. 7

java - 我在 java swing 上调用 setVisible 但没有任何反应

Android Gallery Widget onScrollStateChanged

python - XGBoost feature_importances_ 参数返回 nan

python - 从 NumPy、matplotlib 包导入 python 子模块有什么区别

java - 在 JTable 中鼠标悬停时创建信息面板?工具提示可能不够

python - django 中的 Manytomany 字段的字母顺序错误