扫码一下
查看教程更方便
tkinter 被称为用 python 编写的流行模块。它是创建 gui 应用程序中最简单的模块。
我们可以创建和可视化许多视觉元素。mainloop()
方法在创建 gui 界面中起着最重要的作用。
本教程描述了 mainloop()
方法的重要性,并试图了解该方法背后发生了什么。
mainloop()
事件就像一个 while
循环;这将继续运行,直到用户退出。我们可以说 mainloop()
用作更新 gui 的驱动程序。
如果没有使用 mainloop()
,窗口屏幕上不会出现任何内容。这种方法采用所有创作并具有协作响应。
以下是我们可以涉及的几点。
mainloop()
是 tk()
类的一个方法,它帮助显示一个 gui 窗口。按照下面编写的代码进行操作。
from tkinter import *
# create a gui or screen
gui= tk()
gui.title('delftstack')
# updates activities
gui.mainloop()
输出结果:
mainloop()
方法不断阻塞 mainloop
之外的代码的原因有很多。
mainloop()
方法调用执行控件时逐行执行代码,一直等到用户退出程序。mainloop()
方法不允许 python 在 mainloop 之外执行下一次执行。此代码可以轻松区分命令行和基于 gui 的应用程序。
# gui based application
from tkinter import *
gui = tk()
gui.title('delftstack')
gui.geometry('400x300')
gui.config(bg='darkolivegreen')
quit_btn=button(
gui,
text='quit',
command=lambda:gui.destroy()
)
quit_btn.pack(expand=true)
gui.mainloop()
# command line based application
age= input('enter your age ')
print('your age is :',age)
我们可以注意到,当 python 文件运行时,gui 应用程序执行,而命令行应用程序无法执行,因为命令行应用程序在代码之外;然而,gui 使用 destroy()
方法退出,然后命令行应用程序执行。
输出结果:
在前面的示例中,我们学习了如何阻止 mainloop
之外的代码。
现在我们将演示如何在 mainloop
中使用非阻塞代码。
from tkinter import *
# create an instance of tk
gui = tk()
gui.title('delftstack')
gui.geometry('400x300')
gui.config(bg='darkolivegreen')
def askname():
name = input('please type your name ')
print('your name is: ',name)
quit_btn=button(
gui,
text='quit',
command=lambda:gui.destroy()
)
quit_btn.pack(expand=true)
# call the function after zero second
gui.after(0, askname)
gui.mainloop()
我们意识到,如果我们运行这段代码,gui 和命令行应用程序会同时执行。