扫码一下
查看教程更方便
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 和命令行应用程序会同时执行。