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

如何在继续之前等待Tkinter TopLevel窗口的结果?

在Tkinter中,可以使用wait_window方法来等待TopLevel窗口的结果。

首先,创建一个TopLevel窗口,并设置它的result属性为一个共享的变量,用于存储窗口的结果。然后,在需要等待窗口结果的地方,调用wait_window方法,将TopLevel窗口作为参数传入。这会导致程序暂停执行,直到该窗口被关闭。

以下是一个示例代码:

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

def open_dialog():
    dialog = tk.Toplevel()
    dialog.title("Dialog")
    
    result = tk.StringVar()
    
    def on_ok():
        result.set("OK")
        dialog.destroy()
    
    def on_cancel():
        result.set("Cancel")
        dialog.destroy()
    
    ok_button = tk.Button(dialog, text="OK", command=on_ok)
    ok_button.pack()
    
    cancel_button = tk.Button(dialog, text="Cancel", command=on_cancel)
    cancel_button.pack()
    
    dialog.result = result  # 设置窗口的结果属性

root = tk.Tk()

open_dialog_button = tk.Button(root, text="Open Dialog", command=open_dialog)
open_dialog_button.pack()

root.mainloop()

# 在这里等待TopLevel窗口的结果
print("Dialog result:", open_dialog_button.result.get())

在上面的示例中,当点击"OK"或"Cancel"按钮时,窗口会被关闭,并将结果存储在open_dialog_button.result中。在最后的打印语句中,可以获取到窗口的结果并进行处理。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。

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

相关·内容

Python 图形化界面基础篇:在不同窗口之间传递数据

在本文中,我们将深入研究如何使用 Python Tkinter 库来实现在不同窗口之间传递数据,并演示如何在应用程序中实现这一功能。...Tkinter 库简介 在开始之前,让我们简要介绍一下 Tkinter 库。 Tkinter 是 Python 标准库中一个模块,用于创建 GUI 应用程序。...以下是一个示例,演示如何在窗口之间传递文本数据: # 共享数据变量 shared_data = tk.StringVar() # 在窗口A中设置数据 def set_data_in_window_a...使用 Toplevel 创建了两个新窗口,分别为窗口 A 和窗口 B ,并设置它们标题。...继续学习 Tkinter ,你将能够开发更复杂和有趣应用程序,提供更好用户体验。

1K20

tkinter系列 第十课 TopLevel窗口部件 】

前言 python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?...本节课将要学习TopLevel窗口部件,TopLevel是最高级意思,Toplevel 组件通常用在显示额外窗口、对话框或者其他弹出窗口上。...看下面这个例子,当我们点击菜单栏字体菜单时,会弹出一个新窗口,这个就是TopLevel。 ? ?...创建一个简单TopLevel窗口 代码: from tkinter import * top = Toplevel()top.title("TopLevel") mainloop() 效果: ?...实用案例 通常我们进入一个软件之前,需要先登录;没有登录就不能显示主界面(这里也就是root窗口),通过登录界面(这里是TopLevel窗口)登录成功后才显示。 ? ? ? ?

3.5K20
  • Python 图形化界面基础篇:打开和关闭新窗口

    在本文中,我们将深入研究如何使用 Python Tkinter 库来打开和关闭新窗口,并演示如何在应用程序中实现这些功能。...以下是一个示例,演示如何创建一个新窗口并添加一个标签: def open_new_window(): new_window = tk.Toplevel(root) new_window.title...函数,该函数创建了一个新 Tkinter 窗口对象 new_window ,并设置了窗口标题为"新窗口"。...以下是一个示例,演示如何在窗口中添加一个关闭按钮,以便用户可以关闭窗口: def close_window(window): window.destroy() # 在新窗口中创建一个关闭按钮...Tkinter 库提供了丰富工具和方法,用于创建和控制多个窗口,使你能够构建更复杂和有趣 GUI 应用程序,满足不同用户需求。继续学习 Tkinter ,你将能够开发更多交互性强大应用程序。

    1.3K60

    Python-GUI|Tkinter模块

    01 Tkinter Tkinter模块是Python标准Tk GUI工具包接口,它并不是必须掌握,但是掌握一个Python标准图形库还是非常有意思一件事。...模块,这个模块包括了所需要所有的类和函数 然后,需要创建一个(根)窗口,它是一个普通窗口,带有标题栏、最小化按钮、最大化按钮等,即:root = Tk() ,调用title接口,geometry分别设置根窗口标题...控件梳理 Button 按钮控件;在程序中显示按钮 Canvas 画布控件;显示图形元素,线条或文本 Checkbutton 多选框控件,用于在程序中提供多项选择框 Entry 输入控件;用于显示简单文本内容...范围控件;显示一个数值刻度,为输出限定范围数字区间 Scrollbar 滚动条控件,当内容超过可视化区域时使用,列表框 Text 文本控件;用于显示多行文本 Toplevel 容器控件...LabelFrame labelframe 是一个简单容器控件。常用与复杂窗口布局。 tkMessageBox 用于显示你应用程序消息框。

    4.6K100

    tkinter系列 第十一课 Menu窗口部件 】

    前言 python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?...本节课将要学习Menu窗口部件,Menu是菜单栏意思,菜单栏可以用来实现下拉和弹出式菜单,点击菜单后弹出一个选项列表,用户可以从中选择。...什么时候用:在设计比较复杂软件时,为了使得用户体验更好,不能在一个界面上将所有操作都显示出来,通过菜单栏配合TopLevel,用户可以根据自己需要自由选择。...拓展 通过和TopLevel以及tkinter.filedialog可以实现打开新窗口和打开文件等选项,更多用法可以查看官方文档,这里只是一个简单案例启发,以后实际项目案例中会使用到。..."400x200")root.title("父窗口") def about(): top=Toplevel() top.geometry("400x200") top.title("关于

    1.7K20

    小朋友学Python(24):Tkinter图形界面编程

    例1:窗口 import Tkinter top = Tkinter.Tk() top.mainloop() 这里介绍一下mainloop。 mainloop就是进入到事件(消息)循环。...又譬如你点击了浏览器首页按钮,那么就要清除你浏览器里全部部件,然后重新绘制主页布局和内容。 运行结果: ?...Text 文本控件;用于显示多行文本 Toplevel 容器控件;用来提供一个单独对话框,和Frame比较类似 Spinbox 输入控件;与Entry类似,但是可以指定输入范围值 PanedWindow...窗口布局管理插件,可以包含一个或者多个子控件。...LabelFrame 简单容器控件。常用与复杂窗口布局。 tkMessageBox 用于显示你应用程序消息框。 标准属性 标准属性也就是所有控件共同属性,大小,字体和颜色等。

    4.8K70

    python--GUI编程--Tkinter

    Tk8.0 后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中 Tkinter 编程Tkinter 是 Python 标准 GUI 库。...#显示文本,图标,图片 theLabel.pack() #自动调节主键尺寸和位置 app.mainloop() #窗口主设键循环 运行结果如下,会弹出一个框 ?...显示一个数值刻度,为输出限定范围数字区间 Scrollbar 滚动条控件,当内容超过可视化区域时使用,列表框。....Text 文本控件;用于显示多行文本 Toplevel 容器控件;用来提供一个单独对话框,和Frame比较类似 Spinbox 输入控件;与Entry类似,但是可以指定输入范围值 PanedWindow...标准属性 标准属性也就是所有控件共同属性,大小,字体和颜色等等。

    3.8K30

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

    这几天我有一个想法就是将我之前做测试写一些协议脚本(:ssh、FTP、SMTP、MySQL、Oracle等)综合在一起做一个密码破解器,这么多协议放在一起,每个协议都有自己特殊参数,如果还是和之前我们方式一起通过命令行输入方式未免就太麻烦了...import tkinter window = tkinter.Tk()#创建一个主窗口 控件 当前tkinter一共有这么几种控件,我们先看看每一个控件类型,然后我们再抽一些常用控件来写一些示例...控件 描述 Button 按钮控件;在程序中显示按钮,包含事件:鼠标悬浮、按下、释放以及键盘活动 Canvas 画布控件;显示图形元素,线条、椭圆、矩形等 Checkbutton 多选框控件;...Text 文本控件;用于显示多行文本 Toplevel 容器控件;用来提供一个单独对话框,和Frame比较类似 Spinbox 输入控件;与Entry类似,但是可以指定输入范围值 PanedWindow...() window.mainloop() 首先我们导入tkinter模块 然后新建一个顶层窗口 五六行是定义顶层窗口标题和大小 第八行是我们编写Button控件,将其放置在window顶层框架上,

    4.2K10

    tkinter -- Toplevel

    TopLevel 与 Frame 类似,但它包含窗体属性( Title) 创建简单Toplevel 代码: import tkinter as tk root = tk.Tk() t1 = tk.Toplevel...运行结果生成了两个窗体,一个是 root 启动,另一个则是 Toplevel 创建,它包含有一个 label;关闭 tl则没有退出程序,Tk 仍旧工作;若关闭 Tk,整个 Tk 结束 tl 也结束,...它不能单独存在 设置 Toplevel 属性 title设置标题 geometry 设置宽和高 代码: import tkinter as tk root = tk.Tk() t1 = tk.Toplevel...() # 设置t1标题 t1.title('hello Toplevel') # 设置t1宽和高 t1.geometry('400x300') # 为了区别 root 和 tl,我们向 tl 中添加了一个...使用 Toplevel 自己制作提示框 代码: import tkinter as tk root = tk.Tk() mbyes, mbyesno, mbyesnocancel, mbyesnoabort

    1.3K30

    Python 笔记:GUI编程(Tkinter)

    /usr/bin/python# -*- coding: UTF-8 -*- import Tkintertop = Tkinter.Tk()# 进入消息循环top.mainloop() 以上代码执行结果如下图...listb2.pack()root.mainloop()                 # 进入消息循环 以上代码执行结果如下图: Tkinter 组件 Tkinter提供各种控件,如按钮,标签和文本框...显示一个数值刻度,为输出限定范围数字区间 Scrollbar 滚动条控件,当内容超过可视化区域时使用,列表框。....Text 文本控件;用于显示多行文本 Toplevel 容器控件;用来提供一个单独对话框,和Frame比较类似 Spinbox 输入控件;与Entry类似,但是可以指定输入范围值 PanedWindow...---- 标准属性 标准属性也就是所有控件共同属性,大小,字体和颜色等等。

    5.1K30

    Python实现屏幕取色器功能

    遗憾之处:这个程序部分代码比较长,在手机上查看时这些换行可能会影响阅读质量,记得之前有个朋友提过建议让我加上代码块,不过我试了试,微信公众号后台编辑器不支持这个功能,网上找了几个编辑器也不太好用。...如果有朋友知道简单易用支持代码块编辑器还请推荐一下,谢谢!..., False) class MyCapture: def __init__(self, png): # 变量X和Y用来记录鼠标左键按下位置 self.X = tkinter.IntVar...() screenHeight = root.winfo_screenheight() # 创建顶级组件容器,与屏幕尺寸一样大 self.top = tkinter.Toplevel...,并删除临时全屏幕截图文件 root.state('normal') os.remove(filename) buttonCapture = tkinter.Button(root,

    7.8K70

    Python tkinter 制作一个经典登录界面和点击事件

    前言 Tkinter(即 tk interface) 是 Python 标准 GUI 库,简称 “Tk”;从本质上来说,它是对 TCL/TK 工具包一种 Python 接口封装。...Tkinter 是 Python 自带标准库,因此无须另行安装,它支持跨平台运行,不仅可以在 Windows 平台上运行,还支持在 Linux 和 Mac 平台上运行。...Tkinter 编写程序,也称为 GUI 程序,GUI (Graphical User Interface)指的是“图形用户界面”,它是计算机图形学(CG)一门分支,主要研究如何在计算机中表示图形,..., ImageTk 先做一个大小合适窗口 root = tk.Tk() root.title('软件登陆界面') root.geometry('369x200+500+500') root.mainloop...注册 def RegisterAnAccount(): top = tk.Toplevel() top.title("扫码添加") top.geometry('640x750+500

    2.7K20

    Python 图形化界面基础篇:理解 Tkinter 主事件循环

    它是一个持续运行循环,负责监听和响应用户输入事件(点击按钮、键盘输入、鼠标点击等)。...Tkinter 主事件循环是一个无限循环,它不断地等待和处理事件,以确保应用程序对用户交互做出适当响应。 Tkinter 主事件循环负责以下任务: 1 ....维护应用程序状态:主事件循环还负责维护应用程序状态,例如跟踪窗口位置、控件值等。 理解了 Tkinter 主事件循环工作原理,让我们深入探讨如何在 Tkinter 应用程序中使用它。...在接下来教程中,我们将继续深入研究 Tkinter 各个方面,包括添加更多 GUI 元素、处理不同类型事件以及创建更复杂 GUI 应用程序。...继续学习,你将能够构建更多有趣和功能丰富图形用户界面!

    81830

    【游戏制作】使用Python创建一个美观贪吃蛇游戏,附完整代码

    项目运行结果 项目简介 我们贪吃蛇游戏将包括以下功能: 游戏场地是一片矩形区域,蛇可以在这片区域中自由移动。 使用tkinterCanvas控件来绘制蛇、食物和游戏区域。...通过方向键控制蛇移动方向。 当蛇吃到食物时,蛇身长度增加,并重新生成一个食物。 当蛇撞到墙壁、石块或自己时,游戏结束。 随着得分增加,游戏速度逐渐加快。 添加游戏菜单,包括暂停、继续、退出等功能。...添加查看历史记录、查看当前日期和时间、查看开发者信息、修改主题和窗口大小等功能。 使用ttkbootstrap来美化游戏界面。 环境配置 在开始编写代码之前,我们需要确保安装了必要库。...以下是完整代码实现: import tkinter as tk from tkinter import messagebox, Menu, Toplevel, Text, simpledialog,...", "请输入窗口大小(800x600):") if size: self.root.geometry(size) def create_food(self

    20510

    Python模块:tkinter

    顶层控件是Tk和Toplevel两个类,其他控件是框架、标签、条目、文本、画布、按钮、单选按钮、检查按钮、缩放、列表框、滚动条、选项菜单、旋转框标签框架和窗格窗口。 控件属性用关键字参数来指定。...下面我直接通过编写GUI客户端来向大家介绍一些tkinter中常用控件,在编写之前,我们首先想一下连接服务器并登录聊天室过程。连接服务器,我们需要提供主机名和端口号,登录时我们需要提供用户名。...客户端和服务器之间通信是基于TCP协议,TCP协议规定发送数据一定要被对方接收,接收后返回一个确认给发送方,让发送方继续发送数据,如果这个确认没有收到,发送方就认为连接超时,需要重传。...退出按钮时候,我们发送完退出命令之后,直接摧毁整个窗口,关闭连接。 既然发送数据相关一系列事件已经处理好了,接收数据又该通过何种方式来实现呢?...虽然未实现今年目标确实会留下遗憾,但是只要尽力去实现就可以,因为结果不重要,重要是过程!毕竟,青春有遗憾,这并不可怕,怕是这遗憾没有价值,不值一提,不堪回首。

    2.2K20

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

    其图像化编程基本步骤通常包括: 导入 tkinter 模块 创建 GUI 根窗体 添加人机交互控件并编写相应函数。 在主事件循环中等待用户触发事件响应。...relx:指定组件 X 坐标,以父容器总宽度为单位 1,该值应该在 0.0~1.0 之间,其中 0.0 代表位于窗口最左边,1.0 代表位于窗口最右边,0.5 代表位于窗口中间。...如下例子: 利用复选框实现,单击OK,可以将选中结果显示在标签上。...如下例子:在根窗体上创建菜单,触发创建一个新窗体 from tkinter import * def newwind(): winNew = Toplevel(root)...6.10、模式对话框(Modal): 是相对于前面介绍非模式窗体而言,所弹出对话框必须应答,在关闭之前无法操作其后面的其他窗体。

    14.2K30

    Python使用tkinter打造自定义对话框完整代码

    问题来源:前一阵发过一个技术文章Python编写抽奖式随机提问程序,其中有个弹出式对话框,好像上海科技大学宋老师在群里当时问了一句对话框中中奖姓名是否能显示大一些,如图: 当时记得标准tkinter...参考代码中注释和最后运行结果,应该可以理解其中思路,如有不明白或有疑问地方,欢迎留言交流。...300x100+400+300') root.resizable(False,False) class MyPopup: def __init__(self, title, message): # 弹出式窗口中信息内容宽度和高度...(message)*40 self.height = message.count('\n')*70 # 创建顶层组件,不允许改变大小,顶层显示 self.top = tkinter.Toplevel...'state'] = 'disabled' w = MyPopup('恭喜', '测试成功\n哈哈嘿嘿呼呼') btnPopup.wait_window(w.top) # 避免弹出式窗口尚未关闭就关闭主窗口时引发错误

    3K40
    领券