Tkinter开发问题:无法在二级窗口添加新按钮并打开新窗口
解决Tkinter第二个窗口新增按钮打开新窗口的问题
修改后的完整代码
from tkinter import* main_window=Tk() main_window.geometry('500x500') def first_window(): def second_window(): # 销毁主窗口的初始组件 main_window_label.destroy() main_window_button.destroy() # 第二个窗口的标签 second_window_label=Label(main_window,text='choose one section',font=('Times_New_Roman',25)) second_window_label.pack(pady=20) # 打开新窗口的函数 def open_new_window(): # 创建独立的新窗口 new_win = Toplevel(main_window) new_win.title("新窗口") new_win.geometry("300x200") # 新窗口的内容 Label(new_win, text="这是新打开的窗口", font=('Times_New_Roman',18)).pack(pady=50) Button(new_win, text="关闭窗口", command=new_win.destroy, font=('Times_New_Roman',14)).pack() # 返回第一个界面的函数,销毁第二个窗口的所有组件 def back(): second_window_label.destroy() second_window_back_btn.destroy() open_new_win_btn.destroy() first_window() # 新增打开新窗口的按钮 open_new_win_btn = Button(main_window, text="打开新窗口", font=('Times_New_Roman',20), command=open_new_window, activebackground='green') open_new_win_btn.pack(pady=10) # 返回按钮 second_window_back_btn=Button(main_window,text='back',font=('Times_New_Roman',25),command=back,activebackground='red') second_window_back_btn.pack(side=BOTTOM) # 第一个窗口的组件 main_window_label=Label(main_window,text='welcome to our _______',font=('Times_New_Roman',25)) main_window_label.pack(pady=20) main_window_button=Button(main_window,text='next',font=('Times_New_Roman',25),command=second_window,activebackground='blue') main_window_button.pack(side=BOTTOM) first_window() main_window.mainloop()
关键修改点说明
- 新增打开新窗口的按钮:在
second_window函数内添加open_new_win_btn,点击后触发open_new_window函数 - 创建独立新窗口:用
Toplevel()生成依附于主窗口的独立窗口,它可以单独显示、关闭,不会干扰主窗口的界面切换逻辑 - 完善返回逻辑:返回第一个界面时,销毁新增的
open_new_win_btn,避免再次进入第二个窗口时出现重复组件 - 细节优化:修正原代码中
welcometo的拼写错误,添加pady参数优化组件间距
内容的提问来源于stack exchange,提问作者Abdulatif
相关产品推荐
相关产品推荐

