首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python-在Tkinter中切换窗口时列表框项目不会终止

在Tkinter中切换窗口时,列表框项目不会终止的问题可能是由于列表框对象的生命周期管理不当导致的。为了解决这个问题,可以采取以下步骤:

  1. 确保在切换窗口时,先销毁当前窗口中的列表框对象,然后再创建新窗口中的列表框对象。可以使用destroy()方法来销毁列表框对象。
  2. 在切换窗口时,可以将列表框对象作为参数传递给新窗口的构造函数,以便在新窗口中重新创建列表框对象并显示之前的项目。可以使用get()方法获取列表框中的项目。

下面是一个示例代码,演示了如何在Tkinter中切换窗口时正确处理列表框对象:

代码语言:txt
复制
import tkinter as tk

class Window1(tk.Toplevel):
    def __init__(self, master):
        tk.Toplevel.__init__(self, master)
        self.listbox = tk.Listbox(self)
        self.listbox.pack()
        self.listbox.insert(tk.END, "Item 1")
        self.listbox.insert(tk.END, "Item 2")
        self.listbox.insert(tk.END, "Item 3")
        
        button = tk.Button(self, text="Switch Window", command=self.switch_window)
        button.pack()
    
    def switch_window(self):
        self.listbox.destroy()  # 销毁列表框对象
        self.destroy()  # 销毁当前窗口
        window2 = Window2(self.master, self.listbox.get(0, tk.END))  # 创建新窗口,并传递列表框中的项目
        window2.mainloop()

class Window2(tk.Toplevel):
    def __init__(self, master, items):
        tk.Toplevel.__init__(self, master)
        self.listbox = tk.Listbox(self)
        self.listbox.pack()
        for item in items:
            self.listbox.insert(tk.END, item)
        
        button = tk.Button(self, text="Switch Window", command=self.switch_window)
        button.pack()
    
    def switch_window(self):
        self.listbox.destroy()  # 销毁列表框对象
        self.destroy()  # 销毁当前窗口
        window1 = Window1(self.master)  # 创建新窗口
        window1.mainloop()

class MainApplication(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.button = tk.Button(self, text="Open Window", command=self.open_window)
        self.button.pack()
    
    def open_window(self):
        self.withdraw()  # 隐藏主窗口
        window1 = Window1(self)  # 创建新窗口
        window1.mainloop()

if __name__ == "__main__":
    app = MainApplication()
    app.mainloop()

在上述示例代码中,首先定义了两个窗口类Window1Window2,分别表示两个窗口。在Window1中,创建了一个列表框对象,并添加了一些项目。点击"Switch Window"按钮时,会销毁当前窗口和列表框对象,并创建Window2窗口,将列表框中的项目传递给Window2。在Window2中,重新创建列表框对象,并显示之前的项目。点击"Switch Window"按钮时,会销毁当前窗口和列表框对象,并重新创建Window1窗口。

通过以上的处理,可以确保在切换窗口时,列表框项目会被正确终止和显示。

相关搜索:在Tkinter中的多个窗口之间切换在tkinter中绘图时程序不会结束在tkinter python中打开新窗口时关闭当前窗口选中列表框项目时,在另一个列表框中显示相关数据在列表框中显示sql查询结果时去掉方括号(Tkinter和Python)Android Studio导入新模块时,项目不会显示在项目结构中在tkinter python中使用excel中的值时,列表框中是否有重复项?在导航之间切换时将项目读取到列表中(Firebase)在flutter中向列表中添加项目时,该项目不会保存在该列表中eclipse Java窗口在Eclipse中测试时打开,但在导出时不会打开在量角器中执行多个实例时,不会显示此类窗口错误无线电开始了。但它不会停止。当我在项目中切换页面时它不会停止如何在单击C#中的按钮时将项目追加到另一个窗口的列表框中?当标签的大小改变时,窗口的大小在tkinter、python中也会改变。在终端中运行Ruby脚本应该“保持唤醒”,并且在到达文件末尾时不会终止如何在同一项目中使用多个JetBrains IDE,而不会在它们之间切换时出现恼人的弹出窗口?从WPF中的代码弹出不起作用(在调整大小和切换窗口时)在Javascript (HTML/ Css /Javascript)中触发单击函数时,CSS可见性属性不会切换在项目目录中安装npm模块时出现警告,但在全局安装时不会出现警告当Pcap文件太大时,在c#中通过cmd使用TShark不会终止。为什么会这样呢?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券