如题,运行后有题目为tk的空白窗口,怎么删掉
fifth = Tk()
def f():
fourth.update()
fourth.destroy()
fifth = Toplevel()
fifth.geometry("800x800")
fifth.title("最终结果")
fifth.configure(bg="AntiqueWhite")
image2 = Image.open(r"C:\Users\29212\Desktop\results.jpg")
zoom = 1.8
pixels_x2, pixels_y2 = tuple([int(zoom * x) for x in image2.size])
img2 = ImageTk.PhotoImage(image2.resize((600, 400)))
label2 = Label(fifth, image=img2)
label2.image = img2
label2.pack()
image3 = Image.open(r"C:\Users\29212\Desktop\results2.jpg")
zoom = 1.8
pixels_x3, pixels_y3 = tuple([int(zoom * x) for x in image3.size])
img3 = ImageTk.PhotoImage(image3.resize((600, 400)))
label3 = Label(fifth, image=img3)
label3.image = img3
label3.pack()
btn6 = Button(fourth, text="最终结果显示", width=8, command=f)
btn6.place(x=600, y=280)
image1 = Image.open(r"C://Users//29212//Desktop//mbti1.jpg")
zoom = 1.8
pixels_x1, pixels_y1 = tuple([int(zoom * x) for x in image1.size])
img1 = ImageTk.PhotoImage(image1.resize((600, 400)))
label1 = Label(root, image=img1)
label1.image = img1
label1.pack()
引用 皆我百晓生 小程序回复内容作答:
要删除Tkinter窗口,可以使用destroy()方法。在你的代码中,你创建了一个名为fifth的Tkinter窗口,所以你可以使用fifth.destroy()来删除该窗口。修改你的代码如下:
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
def f():
fourth.update()
fourth.destroy()
fifth = Toplevel()
fifth.geometry("800x800")
fifth.title("最终结果")
fifth.configure(bg="AntiqueWhite")
image2 = Image.open(r"C:\Users\29212\Desktop\results.jpg")
zoom = 1.8
pixels_x2, pixels_y2 = tuple([int(zoom * x) for x in image2.size])
img2 = ImageTk.PhotoImage(image2.resize((600, 400)))
label2 = Label(fifth, image=img2)
label2.image = img2
label2.pack()
image3 = Image.open(r"C:\Users\29212\Desktop\results2.jpg")
zoom = 1.8
pixels_x3, pixels_y3 = tuple([int(zoom * x) for x in image3.size])
img3 = ImageTk.PhotoImage(image3.resize((600, 400)))
label3 = Label(fifth, image=img3)
label3.image = img3
label3.pack()
# 添加删除Tkinter窗口的按钮
btn7 = Button(fifth, text="关闭窗口", width=8, command=fifth.destroy)
btn7.pack()
btn6 = Button(root, text="最终结果显示", width=8, command=f)
btn6.place(x=600, y=280)
image1 = Image.open(r"C://Users//29212//Desktop//mbti1.jpg")
zoom = 1.8
pixels_x1, pixels_y1 = tuple([int(zoom * x) for x in image1.size])
img1 = ImageTk.PhotoImage(image1.resize((600, 400)))
label1 = Label(root, image=img1)
label1.image = img1
label1.pack()
root.mainloop()
以上代码会在最终结果的窗口中添加一个"关闭窗口"的按钮,点击该按钮即可关闭窗口。
【以下回答由 GPT 生成】
首先,您在代码中创建了两个窗口:fifth
和fourth
。然后在按钮的回调函数中,您销毁了fourth
窗口并创建了一个新的fifth
窗口。但是,您没有销毁初始的fifth
窗口,这就导致了空白窗口的出现。
为了解决这个问题,您可以在创建fifth
窗口之前销毁初始的fifth
窗口。以下是修改后的代码:
from tkinter import Tk, Toplevel, Button, Label
from PIL import Image, ImageTk
root = Tk()
def f():
fifth.destroy() # 销毁初始的 fifth 窗口
fourth.destroy() # 销毁 fourth 窗口
result_window = Toplevel()
result_window.geometry("800x800")
result_window.title("最终结果")
result_window.configure(bg="AntiqueWhite")
image2 = Image.open(r"C:\Users\29212\Desktop\results.jpg")
zoom = 1.8
pixels_x2, pixels_y2 = tuple([int(zoom * x) for x in image2.size])
img2 = ImageTk.PhotoImage(image2.resize((600, 400)))
label2 = Label(result_window, image=img2)
label2.image = img2
label2.pack()
image3 = Image.open(r"C:\Users\29212\Desktop\results2.jpg")
zoom = 1.8
pixels_x3, pixels_y3 = tuple([int(zoom * x) for x in image3.size])
img3 = ImageTk.PhotoImage(image3.resize((600, 400)))
label3 = Label(result_window, image=img3)
label3.image = img3
label3.pack()
btn6 = Button(root, text="最终结果显示", width=8, command=f)
btn6.place(x=600, y=280)
image1 = Image.open(r"C://Users//29212//Desktop//mbti1.jpg")
zoom = 1.8
pixels_x1, pixels_y1 = tuple([int(zoom * x) for x in image1.size])
img1 = ImageTk.PhotoImage(image1.resize((600, 400)))
label1 = Label(root, image=img1)
label1.image = img1
label1.pack()
root.mainloop()
这样,在点击按钮后,初始的fifth
窗口将会被销毁,然后创建一个新的result_window
窗口并显示结果图片。
注意:为了运行此代码,您需要安装Pillow
库,可以使用以下命令进行安装:pip install Pillow
。
【相关推荐】