首页
学习
活动
专区
工具
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不会终止。为什么会这样呢?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)

当使用 Place 布局管理容器的组件,需要设置组件的 x、y 或 relx、rely 选项,Tkinter 容器内的坐标系统的原点 (0,0) 左上角,其中 X 轴向右延伸,Y 轴向下延伸,如图所示...列表框控件的主要方法见下面的表: 方法 功能描述 curselection() 返回光标选中项目编号的元组,注意并不是单个的整数 delete(起始位置,终止位置) 删除项目终止位置可省略,全部清空为...delete(0,END) get(起始位置,终止位) 返回范围所含项目文本的元组,终止位置可忽略 insert(位置,项目元素) 插入项目元素(若有多项,可用列表或元组类型赋值),若位置为END,则将项目元素添加在最后...size() 返回列表框行数 执行自定义函数,通常使用“实例名.surselection()” 或 “selected” 来获取选中项的位置索引。...图形化界面设计时,由于其具有灵活的界面,因此往往比列表框更受喜爱。

14.2K30
  • 软件测试|软件测试|超好用超简单的Python GUI库——tkinter(八)

    前言我们日常使用各种桌面软件,当我们想要搜索一个内容,都会出现一个列表框,供我们选择,如下图:图片Tkinter提供了列表框(Listbox)控件来实现类似的功能。...Listbox控件列表框,即 Listbox。使用 Tkinter 进行 GUI 编程的过程,如果需要用户自己进行选择就可以使用列表框控件。...列表框的选项可以是多个条目,也可以是单个唯一条目,但常用于多个条目。....指向一个 StringVar 类型的变量,该变量存放 Listbox 中所有的项目 2. StringVar 类型的变量,用空格分隔每个项目,例如 var.set("c c++ java python...bt.pack(side = BOTTOM)# 显示窗口win.mainloop()程序运行结果,如下所示:图片StringVar() 添加列表选项通过 StringVar() 方法动态地获取列表框的选项

    2K10

    Python-GUI|Tkinter模块

    这篇文章不会介绍如何灵活地运用Tkinter,而是阐述Tkinter这个库包括什么,它能干什么!...然后我们就可以窗口上创建一个Label,即贴一个标签,这个Label可以显示文本、图标、图像等等。...最后一行代码,x.mainloop()即可进入事件循环了,mainloop定义Misc类(Methods defined on both toplevel and interior widgets)...控件梳理 Button 按钮控件;程序显示按钮 Canvas 画布控件;显示图形元素,如线条或文本 Checkbutton 多选框控件,用于程序中提供多项选择框 Entry 输入控件;用于显示简单的文本内容...Frame 框架控件;屏幕上显示一个矩形区域,多用来作为容器 Label 标签控件;可以显示文本和位图 Listbox 列表框控件;Listbox窗口小部件是用来显示一个字符串列表给用户

    4.6K100

    ​Python | GUI编程之tkinter (一)

    ,这样,这个程序可以双击启动,而且启动不会开始命令行(也就是不会弹出小黑框)。...认识控件 在上边的代码我们使用了Label控件,Label控件是Tk最常用的组件之一,可以用来显示文本和图片等。tkinter,一共提供了15个控件,下面我们来认识一下它们。...控件名称 描述 Button 按钮控件;程序显示按钮。...,用来作为容纳其他控件的容器 Label 标签控件;可以显示文本和位图 Listbox 列表框控件;Listbox窗口小部件是用来显示一个字符串列表给用户 Menubutton 菜单按钮控件,由于显示菜单项...该控件内有以下属性/方法: Method/Attribute Description show 为输入文字显示控件内的内容 get() 读取控件内的文字 下面看一个demo: from tkinter

    5.9K31

    Python 学习之 Tkinter「下」

    开始正文: 列表框控件:可以包含一个或者多个文本框。作用: ListBox 控件的小窗口显示项目列表 注意 selectmode 几种方式的区别: 1.BROWSE:通常,只能从列表框中选择一行。...如果单击一个项目,然后拖动鼠标会跟随选中,是默认的。 2.SINGLE:和 BROWSE 的区别是你只能选择一行,不能拖动。...列表框 ListBox II # 绑定变量 v = tkinter.StringVar() # SINGLE 与 BORWSE 相似,但是不支持鼠标按下后移动选中位置 lb = tkinter.Listbox...列表框 ListBox III # EXTENDED 通过 shift 和 control 可以使 ListBox 支持连选和多选,MULTIPLE 支持连选和多选 lb = tkinter.Listbox...["white", "black", "red", "green", "blue", "yellow", "pink"]: menu2.add_command(label=i) # 向菜单条添加菜单选项

    2.2K20

    Python 学习之 Tkinter「下」

    列表框控件:可以包含一个或者多个文本框。作用: ListBox 控件的小窗口显示项目列表 注意 selectmode 几种方式的区别: 1.BROWSE:通常,只能从列表框中选择一行。...如果单击一个项目,然后拖动鼠标会跟随选中,是默认的。 2.SINGLE:和 BROWSE 的区别是你只能选择一行,不能拖动。...3.EXTENDED:通过 shift 和 control 可以使 ListBox 支持连选和多选,能拖动 4.MULTIPLE:支持连选和多选,但不能拖动 列表框 ListBox I # 创建一个...获取元素值,用法同删除 print(lb.curselection()) # 返回当前的索引值 print(lb.selection_includes(1)) # 判断索引项是否被选中 效果图 列表框...["white", "black", "red", "green", "blue", "yellow", "pink"]: menu2.add_command(label=i) # 向菜单条添加菜单选项

    2K50

    软件测试|超好用超简单的Python GUI库——tkinter(十)

    前言上文我们介绍了tkinter列表框处理,我们日常生活还会遇到组合框的情况,tkinter同样可以实现这个功能,下面我们来介绍一下tkinter如何实现组合框。...注:Combobox 并不包含在 tkinter 模块,而是包含在tkinter.ttk子模块,因此若想使用 Combobox 控件,需要使用下面的导包方式:from tkinter import...ttkCombobox语法如下所示:cbox=Combobox(窗口对象,[参数列表])Combobox 控件形式虽然与列表控件存在不同,但它们的本质是相同,因此属性和方法是通用的。...创建窗口win = tkinter.Tk()win.title("拜仁慕尼黑")win.geometry('400x250')win.resizable(0,0)# 创建下拉菜单cbox = ttk.Combobox...总结本文主要介绍了tkinter组合框的实现,组合框的使用比列表框更为多见,更为方便,希望能够帮助到大家,后续我们将介绍tkinter的单选框多选框如何实现。

    1.2K10

    使用 Python+Tkinter 图形化界面知识创建小型 GUI 项目

    使用 Python + Tkinter 图形化界面知识创建小型 GUI 项目 引言 本篇博客,我们将展示如何使用我们 Python 图形化界面基础课程中学到的知识来设计和实现一个小型 GUI 项目...项目概述 我们将创建一个带有以下功能的 To-Do 应用程序: 1 . 用户可以文本框输入新任务。 2 . 用户可以点击“添加任务”按钮将任务添加到任务列表。 3 ....创建主窗口,并设置标题和窗口大小: root = tk.Tk() root.title("To-Do List App") root.geometry("400x400") 步骤3:创建任务列表框 创建一个任务列表框...,启动 Tkinter 的主事件循环以显示应用程序窗口并处理用户交互: root.mainloop() 效果图: 项目演示和总结 我们已经成功创建了一个小型 To-Do 列表应用程序,它具有添加、...希望这个示例项目对你有所帮助,让你能够应用在 Python 图形化界面基础课程中学到的知识来创建自己的小型 GUI 项目。祝你 GUI 编程的学习和实践取得成功!

    61920

    太实用了!自己动手写软件——GUI编程

    顶层窗口的上面构建不同的GUI组件 通过底层的应用代码将这些GUI组件连接起来 进入主事件循环 安装和使用 好了,回归正题,看看我们今天需要学习的tkinter,因为是内置库,所以我们不需要安装直接调用即可...控件 描述 Button 按钮控件;程序显示按钮,包含的事件如:鼠标悬浮、按下、释放以及键盘活动 Canvas 画布控件;显示图形元素,如线条、椭圆、矩形等 Checkbutton 多选框控件;...用于程序中提供多项选择框 Entry 输入控件;用于显示简单的文本内容 Frame 框架控件;屏幕上显示一个矩形区域,多用来作为容器 Label 标签控件;可以显示文本和位图 Listbox 列表框控件...,如列表框。....() window.mainloop() 首先我们导入tkinter模块 然后新建一个顶层窗口 五六行是定义顶层窗口的标题和大小 第八行是我们编写的Button控件,将其放置window顶层框架上,

    4.2K10

    五分钟技术分享使用Python快速制作UI界面

    上图是我制作的一个python与unity通讯的ui测试界面‍‍‍‍‍‍‍‍‍ 今天花五分钟我们聊聊使用Python快速制作UI,开发过程我们会有一些测试工具的需求,只注重功能,并不在乎UI的美观性...当谈到使用 Python 迅速搭建用户界面,我们不得不提 Tkinter。...Tkinter 提供了一组丰富的组件,包括但不限于: 窗口(Window):Tkinter 允许你创建应用程序的主窗口。 标签(Label):用于显示文本或图像。...列表框(Listbox):用于显示列表,用户可以选择其中的项。 滚动条(Scrollbar):用于滚动大量内容的组件,如文本框和列表框。... Tkinter ,用户的交互操作(比如点击按钮、输入文本等)会触发事件,而这些事件需要被 Tkinter 的事件循环处理。

    3200

    Python进阶-GUI窗口

    让 GUI 程序启动和运行起来需要以下 5 个主要步骤: 导入 tkinter 模块(python3.x版本); 创建一个顶层窗口对象,用于容纳整个 GUI 应用; 顶层窗口对象之上(或者“其中...获得 tkinter 的访问权是首要步骤。 ? ① 窗口和控件 GUI 编程,顶层的根窗口对象包含组成 GUI 应用的所有小窗口对象。它们可能是文字标签、按钮、列表框等。...所以当创建一个顶层窗口,只是表示需要一个地方来摆放所有的控件。...>>> import tkinter >>> top = tkinter.Tk() tkinter.Tk() 返回的对象通常称为根窗口,这也是一些应用使用 root 而不是 top 来指代它的原因。...顶层窗口是那些应用独立显示的部分。GUI 程序可以有多个顶层窗口,但是其中只能有一个是根窗口。 控件可以独立存在,也可以作为容器存在。如果一个控件包含其他控件,就可以将其认为是那些控件的父控件。

    1.4K50

    Python Tkinter GUI

    二,Tkinter的使用 先看一下GUI程序的开发,熟悉MFC的朋友应该不会陌生。...GUI程序,我们会有一个顶层窗口,在这个顶层窗口上可以包括所有的小窗口对象,像标签,按钮,列表框等等,也就是说顶层窗口我们放置其他窗口或者控件的地方。...我们用下面的语句可以创建一个顶层窗口,或者叫根窗口: Import tkinter top = tkinter.Tk() (如果前面是用的from tkinter import * ,那么Tk()就够了...Tk的每一个组件都有很多option,通过改变这些option可以改变组件的外观,比如显示的内容,颜色,大小,位置,事件处理函数等。...Anchor表示parcel放置组件的方式,缺省时CENTER。 2 grid 使用方法和pack类似。 3 place 精确的摆放一个组件的位置,一般不太用。

    1.8K30
    领券