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

在tkinter上关闭带有父窗口的子窗口

,可以通过以下步骤实现:

  1. 首先,确保已经导入了tkinter库:
代码语言:txt
复制
import tkinter as tk
  1. 创建一个父窗口和一个子窗口:
代码语言:txt
复制
parent_window = tk.Tk()
child_window = tk.Toplevel(parent_window)
  1. 在子窗口上添加一个关闭按钮,用于关闭子窗口:
代码语言:txt
复制
close_button = tk.Button(child_window, text="关闭", command=child_window.destroy)
close_button.pack()

这里使用destroy()方法来关闭子窗口。

  1. 在父窗口上添加一个关闭按钮,用于关闭父窗口以及其子窗口:
代码语言:txt
复制
def close_windows():
    parent_window.destroy()

close_button = tk.Button(parent_window, text="关闭", command=close_windows)
close_button.pack()
  1. 运行主循环以显示父窗口和子窗口:
代码语言:txt
复制
parent_window.mainloop()

完整的示例代码如下:

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

def close_windows():
    parent_window.destroy()

parent_window = tk.Tk()
child_window = tk.Toplevel(parent_window)

close_button = tk.Button(child_window, text="关闭", command=child_window.destroy)
close_button.pack()

close_button = tk.Button(parent_window, text="关闭", command=close_windows)
close_button.pack()

parent_window.mainloop()

在这个例子中,点击子窗口的关闭按钮,将关闭子窗口;点击父窗口的关闭按钮,将关闭父窗口以及其子窗口。

在tkinter中关闭带有父窗口的子窗口是一个常见的操作,可以用于构建用户界面中的弹出窗口和对话框等功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# WPF如何关闭通过父窗口打开的所有子窗口

= "父窗口标题") item.Close(); } WinForm时这样操作的: // 遍历并关闭所有子窗口 FormCollection childCollection = Application.OpenForms...= this.Title) childCollection[i].Close(); } WPF中时这样操作的: // 遍历并关闭所有子窗口 Window[] childArray = Application.Current.Windows.Cast...= "父窗口标题") item.Close(); } // 或者也可以这样写: Window[] childArray = Application.Current.Windows.Cast<Window...= this.Title) item.Close(); } 总结, 注意WPF中调试要排除无标题窗口,否则会导致程序被关闭。...这里的无标题窗口是WPF的界面调试器,如果它被关闭会导致被调试的程序也被关闭,Release程序可以不用对无标题窗口进行排除。

4.1K60
  • 关闭模态窗口后,父窗口居然跑到了其他窗口的后面

    弹出一个模态窗口,然后将模态窗口的父窗口设置为自身窗口; 切换到其他程序窗口中(比如 Windows 资源管理器窗口); 切换回此模态窗口,然后关闭这个模态窗口上。...你会发现,模态窗口关闭后,父窗口并没有回到当前的顶层显示中。取而代之的,是其他程序的窗口(比如 Windows 资源管理器窗口)。...然后,回到模态子窗口中,把它关掉: ? 我们期待模态子窗口关掉后,它的父窗口会在顶层继续供我们操作,但实际上,Windows 资源管理器却成为了顶层,我们的程序“掉下去了”: ?...为解决兼容性问题的微软工程师默哀一分钟…… 我曾经尝试在模态子窗口关闭后激活一下父窗口,但这样会导致窗口的层级闪烁一下(Windows 资源管理器会短暂地显示到我们的窗口之上)。...或者统一模态子窗口的窗口样式,在样式中解决这个 BUG,这样,所有使用了此窗口样式的模态子窗口也将解决问题。

    9.4K20

    使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点

    不过,对于 WPF 程序来说,一个独立的窗口实际上只有一个窗口句柄,窗口内的所有内容都是 WPF 绘制的。...注意看下面的窗口标题栏,当我在这些不同区域间点击的时候,窗口标题栏在黑色和灰色之间切换: 这说明当子窗口获得焦点的时候,父窗口会失去焦点并显示失去焦点的样式。...你可以在这篇博客中找到一个简单的例子: 解决办法 而原因和解决方法仅有一个,就是子窗口需要有一个子窗口的样式。 具体来说,子窗口必须要有 WS_CHILD 样式。...你可以看看 Spyxx.exe 抓出来的默认普通窗口和子窗口的样式差别: !...[默认普通窗口]](/static/posts/2019-09-19-10-21-31.png) ▲ 默认普通窗口 ▲ 子窗口 ---- 参考资料 关于WS_CLIPCHILDREN和WS_CLIPSIBLINGS

    58360

    解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题

    因为 Win32 的窗口句柄是可以跨进程传递的,所以可以用来实现跨进程 UI。不过,本文不会谈论跨进程 UI 的具体实现,只会提及其实现中的一个重要缓解,使用子窗口的方式。...你有可能在使用子窗口之后,发现拖拽改变窗口大小的时候,子窗口中的内容不断闪烁。如果你也遇到了这样的问题,那么正好可以阅读本文来解决。...---- 问题 你可以看一下下面的这张动图,感受一下窗口的闪烁: 实际上在拖动窗口的时候,是一直都在闪的,只是每次闪烁都非常快,截取 gif 的时候截不到。...后来使用 CreateWindowEx 创建了一个纯 Win32 窗口,这种闪烁现象更容易被截图: 解决 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19...,同时有更好的阅读体验。

    76940

    System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。”

    当试图在 WPF 窗口中嵌套显示 Win32 子窗口的时候,你有可能出现错误:“寄宿的 HWND 必须是指定父级的子窗口。”。 这是很典型的 Win32 错误,本文介绍如何修复此错误。...---- 我们在 MainWindow 中嵌入一个其他的窗口来承载新的 WPF 控件。...问题 你有可能在调试嵌入窗口代码的时候遇到错误: System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。”...原因和解决办法 出现此错误,是因为同一个子窗口被两次设置为同一个窗口的子窗口。...具体来说,就是 A 窗口使用 HwndHost 设置成了 B 的子窗口,随后 A 又通过一个新的 HwndHost 设置成了新子窗口。

    33930

    在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

    一、背景   最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法。...解决办法为:我们需要使用javac *.java命令来进行运行,因为此时存在继承关系,编译子类的同时也需要先编译父类 2)运行java Zi命令,出现以下错误 ? 这是什么原因呢?...这是因为我们不存在子文件夹com/hafiz/zhang并且在该子文件夹下不存在Zi.class文件,故找不到主类。 解决办法是:使用javac  -d . *.java("-d ."...此时我们还发现,已经自动生成子文件夹com/hafiz/zhang并且在该子文件夹下存在Zi.class文件了。 ?...由此我们得出了在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类的方式: 1.使用javac -d . *.java进行编译 2.使用java com.hafiz.Zi(

    1.6K40

    Python进阶-GUI窗口

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

    1.4K50

    过分了,别人用来做桌面应用开发,这家伙却用来撩妹(2)-上帝给你开了各种撩妹窗口(Tkinter)

    过分了,别人用来做桌面应用开发,这家伙却用来撩妹(2)-上帝给你开了各种撩妹窗口(Tkinter) 续上一篇学习,我们搞定了了tkinter的基础函数,这次我们开始来搞事情。 ?...:实现启动多个窗口 第四步:每隔一段时间弹出一个骚扰窗口 第五步:随机的窗口 ---- 二、前言 在开始学习之前,你可能需要去看一下上一篇文章,因为这篇文章方法是使用到上一篇基础的东西。...,框架的父容器,不填写则会全部写入到第一个窗口中 ?...,那我们继续来弹窗,说明需求: 需要弹出多个窗口 每隔多长时间就会自动弹出一个 关闭一个弹窗之后,依然不影响继续弹窗。...在不同位置出现。 要实现不同位置,首先要想到的是创建窗口时的函数。 ?

    1.2K30

    Python Tkinter Gui 运行不卡顿,多线程解决界面卡死问题

    工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。...Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中,Python 使用 Tkinter 可以快速的创建 GUI 应用程序,由于 Tkinter 是内置到 python 的安装包中、...只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。...self.init_window_name.geometry('700x350') # 设置窗口大小 """ 点击右上角关闭窗体弹窗事件 """ self.init_window_name.protocol...return None if __name__ == '__main__': """ 把button方法打包进线程,现实运行不卡顿 """ """ 实例化出一个父窗口

    3.4K20

    Python-GUI|Tkinter模块

    它可以跨平台运行在Windows,Linux和Mac等系统上。 这篇文章不会介绍如何灵活地运用Tkinter,而是阐述Tkinter这个库包括什么,它能干什么!...模块,这个模块包括了所需要的所有的类和函数 然后,需要创建一个(根)窗口,它是一个普通的窗口,带有标题栏、最小化按钮、最大化按钮等,即:root = Tk() ,调用title接口,geometry分别设置根窗口的标题...然后我们就可以在该窗口上创建一个Label,即贴一个标签,这个Label可以显示文本、图标、图像等等。...我们这里使用text来指定要显示的文本,而第一个参数root,表明x的父控件是root,bg属性表示label的背景色,font指明文本所用字体,width,height指明label的宽度和高度。...Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器 Label 标签控件;可以显示文本和位图 Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

    4.7K100

    Tkinter之Menu组件用法 原

    本系列博客主要总结Tkinter库中提供的UI组件,关于Java的GUI开发,感兴趣的可以在如下系列博客中找到: https://my.oschina.net/u/2340880/blog?...Tkinter中有提供Menu菜单组件中可以添加如下几种组件: 1_动作项:简单的行为按钮,用户点击后会执行相应的方法。 2_子菜单:行为完整的子菜单项。...Menu构造函数中第1个参数可以传入菜单所属的窗口或者父菜单,后面可以添加一些菜单配置,例如: 属性 意义 activebackground 活跃时的背景色 activeborderwidth 活跃时的边框宽度...tearoff 可以设置为0和1,表示此菜单是否可以独立出来 tearoffcommand 菜单独立被触发时的回调 title 可设置独立菜单的标题 需要注意,在MacOS系统上,菜单的样式是由系统维护的...gif格式 label 设置显示的文本 menu 这个选项只用在添加子菜单中 offvalue 设置checkbutton关闭时的值 onvalue 设置checkbutton开启时的值 selectcolor

    1.9K20
    领券