tkinter程序无法实现页面跳转,运行同时弹出两个窗口如何解决
问题原因
- 代码初始化阶段同时创建了两个
tk.Tk()实例,每个tk.Tk()都会生成独立的顶层窗口,所以程序启动就弹出两个窗口 - 回调函数中
master.Label写法错误,tk的控件类统一从tk模块调用,不属于主窗口对象的属性 - 需求为同一窗口加载内容,无需预先创建第二个顶层窗口
修复后代码
import tkinter as tk from tkinter import messagebox master = tk.Tk() master.geometry("300x300") def buttonCallback(): # 隐藏原有页面的控件 label_1.grid_forget() urunler.grid_forget() # 加载新内容到当前窗口 urun_list_label = tk.Label(master, text="Urunler listesi") urun_list_label.grid(row=0, column=0) # 有其他新控件也可以在这里继续添加布局 urunler = tk.Button(master, text="Click", command=buttonCallback) label_1 = tk.Label(master, text="Bolat Aktar ürün yönetim sistemi") # 初始页面布局 label_1.grid(row=0, column=0) urunler.grid(row=1, column=0) tk.mainloop()
补充说明
如果后续需要做多个页面的切换,更规范的实现方式是用tk.Frame作为每个页面的容器,提前创建所有页面对应的Frame实例,点击按钮时只显示目标Frame、隐藏其他Frame即可,更适合复杂的多页面业务场景。
内容的提问来源于stack exchange,提问作者Fidanlıoğlu Hakan
相关产品推荐
相关产品推荐

