它是一个持续运行的循环,负责监听和响应用户的输入事件(如点击按钮、键盘输入、鼠标点击等)。...监听用户输入事件:主事件循环会等待用户的交互操作,例如点击按钮、拖动窗口、键盘输入等。 2 . 调用事件处理程序:一旦事件被捕获,主事件循环会调用与该事件相关联的事件处理程序(回调函数)。...维护应用程序状态:主事件循环还负责维护应用程序的状态,例如跟踪窗口的位置、控件的值等。 理解了 Tkinter 主事件循环的工作原理,让我们深入探讨如何在 Tkinter 应用程序中使用它。...创建一个 Tkinter 窗口对象。 3 . 设置窗口标题和添加 GUI 元素。 4 . 定义事件处理程序(回调函数)。 5 . 启动 Tkinter 主事件循环。 让我们逐步来看这些步骤。...步骤4:定义事件处理程序(回调函数) 事件处理程序是在用户执行某个操作时要执行的函数。例如,如果你希望在用户点击按钮时执行特定操作,你需要定义一个事件处理程序来处理按钮点击事件。
一、接口选用指南 二、快递100信息推送接口 2.1 系统结构与流程 快递信息推送服务由订阅接口、跟踪系统和回调接口组成:贵公司通过本文档的章2.2.1、2.2.2的规范调用订阅接口将要查询、跟踪的运单号...快递100接收到后便对这些运单进行跟踪(又称“监控”、“查询”,下同),当运单状态发生变化的时候,快递100便通过调用回调接口将运单的跟踪信息(又称“查询结果”下同)推送给贵公司,直到这些运单号的生命周期结束...回调请求 注:回调请求(也称“推送”)是指由快递100向贵司的回调接口发起请求,用于将运单的物流跟踪信息提交给贵司。...2.3.2回调响应报文及错误码解释 当我方调用贵方的回调接口(callbackurl)时,贵方需要先将我方提交的数据保存至贵方的数据库,接着向我方返回是否成功接收的响应报文及代码,即贵公司直接在回调接口的地址的...,直到第60天,这时会给贵方的回调接口发起一次status=abort、message包含“60天”的推送,告知您这张单异常,在推送发出以后,我们将停止对此单进行跟踪。
Tkinter 绑定了 Python 的 Tk GUI 工具集 ,就是Python 包装的Tcl代码,通过内嵌在 Python 解释器内部的 Tcl 解释器实现, Tkinter的调用转换成 Tcl 命令...比较流行的一个 Tkinter 的替代品和上面类似至于两者的区别 easygui Python 中一个非常简单的 GUI 编程模块,不同于其他的 GUI 生成器,它不是事件驱动的 调用函数实现,并且使用简单...;为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...相反所有的 GUI 交互都是通过简地函数调用就可以实现,EasyGUI 为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...int('FISHC') # 这里会产生异常 except: easygui.exceptionbox() #产生错误进行处理 WeiyiGeek.异常捕获 2.
Tkinter 绑定了 Python 的 Tk GUI 工具集 ,就是Python 包装的Tcl代码,通过内嵌在 Python 解释器内部的 Tcl 解释器实现, Tkinter的调用转换成 Tcl 命令...比较流行的一个 Tkinter 的替代品和上面类似至于两者的区别 easygui Python 中一个非常简单的 GUI 编程模块,不同于其他的 GUI 生成器,它不是事件驱动的 调用函数实现,并且使用简单...;为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...相反所有的 GUI 交互都是通过简地函数调用就可以实现,EasyGUI 为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...int('FISHC') # 这里会产生异常 except: easygui.exceptionbox() #产生错误进行处理 ? WeiyiGeek.异常捕获 2.
Button 控件是 Tkinter 中常用的窗口部件之一,同时也是实现程序与用户交互的主要控件。通过用户点击按钮的行为来执行回调函数,是 Button 控件的主要功用。...首先自定义一个函数或者方法,然后将函数与按钮关联起来,最后,当用户按下这个按钮时,Tkinter 就会自动调用相关函数。...当然按钮也并非一定要执行回调函数(callback function),它也只可以当一个“摆设”,不过这样的按钮是没有“灵魂的”,Button 控件的使用流程如下所示:import tkinter as...tk# 创建窗口window =tk.Tk()# 设置回调函数def callback(): print ("点击此处!")...# 使用按钮控件调用函数b = tk.Button(window, text="点击执行回调函数", command=callback).pack()# 显示窗口tk.mainloop()Button
command 类型:回调; 说明:当按钮被按下时所调用的一个函数或方法。所回调的可以是一个函数、方法或别的可调用的Python对象。...点击Button,利用回调函数显示文本内容。 from Tkinter import * Bu=Tk() #回调函数 def PrintButton(): print '荷塘花!'..._register(callit) return self.tk.call('after', ms, name) 回调函数与函数:fun与fun()作为参数时表示的意义不同。...2、导入sys模块 import sys sys.exit() sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。...如果有捕获此异常的代码,那么这些代码还是会执行。
Tkinter绑定了 Python 的 Tk GUI 工具集 ,就是Python 包装的Tcl代码,通过内嵌在 Python 解释器内部的 Tcl 解释器实现, Tkinter的调用转换成 Tcl 命令...(MainForm,text="退出",fg="black") #在窗体上创建 btn1 按钮 def turn_property(event): #自定义回调函数 trun_proerty...callback(): #定义菜单鼠标单击事件回调函数 root.title("OK") #调用成功,在窗体标题上显示 OK filemenu=Menu(m1) #在m1菜单实例上建立新的子菜单实例...============================================= Message及Button 组件 def showMessage(event): #自定义按钮鼠标事件回调函数...,fg="black") #创建按钮实例 b_show.bind("",showMessage) #按钮对象绑定鼠标回调事件 b_show.pack(side="left") #在窗体左对齐设置按钮
与Entry 类似,但可以指定输入范围值 创建一个Spinbox 代码: import tkinter as tk root = tk.Tk() # root.geometry('200x100') tk.Spinbox...当点击 up 时,索引值变为1,即显示的值为2 设置 Spinbox 的回调函数 代码: import tkinter as tk root = tk.Tk() def printspin(): ...最大值 increment=1, # 设置增量值为1,这个与 Scale 的 resolution 意思相同 command=printspin, # 回调函数...最大值 increment=1, # 设置增量值为1,这个与 Scale 的 resolution 意思相同 command=printspin, # 回调函数...每次点击 Spinbox 按钮时就会调用 printSpin 函数,打印出 Spinbox 的当前值 删除 Spinbox 指定位置的字符 代码: import tkinter as tk root =
在顶层窗口的上面构建不同的GUI组件 通过底层的应用代码将这些GUI组件连接起来 进入主事件循环 安装和使用 好了,回归正题,看看我们今天需要学习的tkinter,因为是内置库,所以我们不需要安装直接调用即可...Text 文本控件;用于显示多行文本 Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似 Spinbox 输入控件;与Entry类似,但是可以指定输入范围值 PanedWindow...显示的Button文字为“QUIT”,绑定了一个回调函数就是window.quit 第九行就是将这个button控件采用pack方法放置,pack会将控件自动放置在合适的位置 最后一行运行一个主函数...Button内容是一致的,就是Label控件调用的Label函数,它没有回调函数,所以说它只是相当于一个信息提供框。...window.config(menu=menu) window.mainloop() 1-6行:和之前的一样,不做介绍 8行:创建一个Menu控件,并将控件放置在window上 9-10行:添加菜单内容和回调函数
使用回调函数打印当前的值 代码: import tkinter as tk root = tk.Tk() def printscale(text): print('text = {}'.format...horizontal', # 设置水平方向 variable=v, # 绑定变量 command=printscale # 设置回调函数...这个回调函数有一个参数,这个值是当前的 Scale 的值,每移动一个步距就会调用一次这个函数 控制显示位数,可以理解为:Scale 的值为一整形,在输出显示时,它将会被转化为一字符串,如1.2转化为1.2...8, # 设置显示的位数为8 variable=v, # 绑定变量 command=printscale # 设置回调函数... # 设置水平方向 variable=v, # 绑定变量 label='choice', # 设置标签值 command=text # 设置回调函数
譬如你输入一个字符,就要立即在光标那个位置显示出来(前提是你选中了文本框,也就是鼠标在文本框这个图案的范围内单击过)。...(root, text='MyButton', command = clickButton).pack() root.mainloop() 说明: 这里的clickButton是一个回调函数。...当你点击按扭的时候,回调函数会被调用,在终端里打印出“hello button”。 运行结果: ? 3.png ?...Canvas 画布控件;显示图形元素如线条或文本 Checkbutton 多选框控件;用于在程序中提供多项选择框 Entry 输入控件;用于显示简单的文本内容 Frame 框架控件;在屏幕上显示一个矩形区域...Text 文本控件;用于显示多行文本 Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似 Spinbox 输入控件;与Entry类似,但是可以指定输入范围值 PanedWindow
之前写过一系列的tkinter库控件的使用方法以及tkinter的三种布局方法。...如果做一些简单的界面,使用tkinter还是很方便的,毕竟是python自带的库。 今天将会做下面这样的一个计算器,可以实现基本的加减程序的运算,整体代码逻辑比较简单,主要是一个回调函数的理解。...等于按钮按下就调用calculate方法,先获取当前标签的内容,通过eval方法计算结果,最后将算式和结果拼接成一个字符串返回给label显示,过程中如果出现错误异常,就显示error。...3.重构布局代码 方法都定义好了,但是按钮都是循环实现的,如果直接绑定回调函数肯定不行,因为只能绑定一个,根据上面的功能,按钮要分为4类。...4.按钮回调函数绑定 最后给不同类型按钮绑定上对应方法即可。
tkinter就相当于flask框架。比较简陋,也比较易上手。我当前的需求就是简单实现一个窗口录入文件,然后调用脚本执行方法即可。最后把结果显示在一个对话框中。...所有软件都是重复使用的,不可能只操作一次就退出了。...添加组件后调用该方法,才能将组件放入画板中。tkinter还有两个布局函数--grid和place。 # Label标签组件。...,其属性值是一个回调函数 selectmode:设置列表框的选择模式。...selectmode属性默认值是BROWSE Listbox: yscrollcommand 列表框纵向滚动时的回调监听,该属性的值是一个回调函数 xscrollcommand 列表框横向滚动时的回调监听
我们编写的Python代码会调用内置的Tkinter,Tkinter封装了访问Tk的接口; Tk是一个图形库,支持多个操作系统,使用Tcl语言开发; Tk会调用操作系统提供的本地GUI接口,完成最终的...所以,我们的代码只需要调用Tkinter提供的接口就可以了。...我们再对这个GUI程序改进一下,加入一个文本框,让用户可以输入文本,然后点按钮后,弹出消息对话框。...GUI回调 import tkinter as tk def callback(): """ callback function for button click """...GUI回调
事件和绑定正如前提到的,Tkinter应用程序大部分事件都在事件循环中(通过mainloop方法进入事件循环)事件来自于多个来源,比如用户的键盘的输入和鼠标操作,和windowmanager的重绘事件(...大多数情况下不是有用户直接调用的)。...Tkinter提供强大的机制让您自己处理事件,每个组件你都可以为各种事件绑定python的函数和方法widget.bind(event,handler)如果组件中发生了与event描述匹配的事,将调用handler...事件的绑定函数bind: 语法:窗体对象.bind(事件类型,回调函数) 所谓的“回调函数”,就是这个函数我们不用去调用它,当相应的事件发生的时候,它会自动取调用。...4.Tkinter的包名因Python的版本不同存在差异,有两种:Tkinter和tkinter,读者若发现程序不能运行,可以尝试切换包名
三、认识组件 如果大家习惯了 windows 编程,那么对于“控件”一次一定不会陌生,其实呢,组件和控件是一回事,在本书中我们不加以区分。...事件及其绑定 其实, 我们在按钮那一节就接触到了事件的绑定, 使用的函数是 bind; bind 函数的调用规则:窗体对象.bind(事件类型,回调函数); 所谓的“回调函数”, 就是这个函数我们不用去调用它..., 当相应的事件发生的时候, 它会自动取调用。...比如当我们 的按钮被按下的时候, 它会被自动调用。...解除绑定 接触绑定我们使用 unbind 方法,它和 bind 的使用很相似; 不过 unbind 方法只需要一个参数就可以了, 它只需要解除绑定的事件类型, 因为它会解除该绑定事件类型的所有回调函数。
window.winfo_height() 获取窗口的大小,同样也适用于其他控件,但是使用前需要使用 window.update() 刷新屏幕,否则返回值为1 window.protocol("协议名",回调函数...则 Tkinter 主窗口右上角 x 号的关闭功能失效, # 也就是无法通过点击 x 来关闭窗口,转变成调用用户自定义的函数。...tk # 定义窗口 window = tk.Tk() window.title('c语言中文网') window.geometry('300x300') # 定义回调函数 def callback(...): print("执行回调函数","C语言中文网欢迎您") # 点击执行按钮 button = tk.Button(window, text="执行", command=callback)...def gettime(): dstr.set(time.strftime("%H:%M:%S")) # 获取当前时间 root.after(1000, gettime) # 每隔 1s 调用一次
如果有人知道哪里可以找到纯 Python/tkinter“日期和时间输入”小部件的公共领域源代码(理想情况下,它可以处理闰年和所有月末情况),则请向我指出该存储库,不胜感激。...我正在跟踪 MonthSpinBox 变量(“SelectedMonth”),并且按照书中的说明,我尝试使用以下方法更新 DaySpinBox:1 - 使用“to= SelectedMonth”。...一些尝试显示为注释,用于创建 DaySpinBox 的调用。(我刚接触 lambda,也许我使用不正确)?...要更新 Spinbox,请将命令附加到 month Spinbox,然后在回调中执行更新。...也许这是 tkinter 中的一个 bug 或文档记录不佳的功能,它是由此差异触发的。
如果你想测试一下自己对这个话题的理解,试着回答以下问题: 你何时应该捕获你调用的函数引发的异常,何时又不应该? 你如何确定应该捕获哪些异常类? 当你捕获到一个异常时,你应该如何处理它?...Tkinter GUI工具包(Python标准库的一部分):Tkinter将每个应用程序事件处理程序视为应用程序的独立小运行,并在每次调用处理程序时添加一个通用的捕获所有异常的代码块,以防止有缺陷的应用程序处理程序导致...在这个代码片段中,注意Tkinter允许SystemExit异常(表示应用程序正在退出)继续冒泡,但捕获了所有其他异常以防止崩溃。...如果发生错误,它会将一条解释性信息记录到日志中,然后尝试回滚数据库会话。但很显然,回滚操作本身有时也会失败,因此还有一个额外的异常捕获块来处理回滚过程中可能出现的错误,并将它们也记录下来。...在开发模式下,我们现在重新抛出异常以导致应用程序崩溃,这样我们就可以在工作时看到错误和堆栈跟踪。但我们这样做的同时,并没有削弱生产版本的稳定性,它继续捕获所有错误并防止崩溃。
领取专属 10元无门槛券
手把手带您无忧上云