Tkinter模块Python支持各种图形界面的第三方库,包括TkQtwxWidgets...Python提供的Tkinter模块是TkGUI工具包的接口。TkinterTk是一个支持多种操作系统的图形库,使用Tcl语言开发;Tk会调用操作系统提供的本地GUI接口来完成最终的GUI。所以代码实现只需要调用Tkinter提供的接口即可。GUI编程“HelloWorld”,这次使用的是Tkinter模块。首先导入Tkinter库Python3.x版本,Tkinter库已经改为tkinter,导入命令如下:fromtkinterimport*或importtkinter从Frame派生一个Application类,它是所有Widgets的父容器:classApplication(Frame):'''DerivedfromFrameApplication'''def__init__(self,master=None):Frame.__init__(self,master)self.pack()self.create_widgets()defcreate_widgets(self):self.hello_label=Label(self,text='Hello,world!')self.hello_label.pack()self.quit_button=Button(self,text='Quit',command=self.quit)self.quit_button.pack()在GUI中,Button、Label、Entry等都是Widget。Frame是一个可以容纳其他Widget的Widget。pack()方法将Widget添加到父容器中并实现布局。pack()是最简单的布局,grid()网格布局可以实现更复杂的布局。在create_widgets()方法中,创建一个Label和Button,当Button被点击时,触发self.quit()退出程序。然后,实例化Application并启动消息循环:#InstantiateApplicationapp=Application()#Setthewindowtitleapp.master.title('HelloWorld')#Mainmessageloopapp.mainloop()GUI程序的主线程负责监视来自操作系统的消息并依次处理每条消息。因此,如果消息处理比较耗时,需要在新的线程中处理。上面程序运行效果:点击Quit按钮退出或者左上角的x结束程序输入文本上面的例子是直接输出的形式,现在尝试添加一个文本框,让用户可以输入文字,点击按钮读取输入的信息,弹出消息对话框显示输入的信息。fromtkinterimport*importtkinter.messageboxasmessageboxclassApplication(Frame):def__init__(self,master=None):'''初始化函数'''Frame.__init__(self,master)self.pack()self.create_widgets()defcreate_widgets(self):'''Createwidgets'''self.name_input=Entry(self)self.name_input.pack()self.alert_button=Button(self,text='Hello',command=self.hello)self.alert_button.pack()defhello(self):'''接收用户输入并显示信息'''name=self.name_input.get()or'world'messagebox.showinfo('Message','Hello,{}'.format(name))#实例化Applicationapp=Application()#设置窗口标题app.master.title('HelloWorld')#主消息循环app.mainloop()代码运行流程,当用户点击按钮,触发hello(),通过self.name_input.get()得到用户输入的文本后,使用messagebox.showinfo()弹出消息对话框。程序运行效果如下:结束语这里只是简单的尝试使用Tkinter模块完成一个简单的例子,Tkinter模块能完成的功能远不止这些。详细信息请参考TKDocshttps://tkdocs.com/tutorial/index.html以上是本文的主要内容。欢迎关注微信公众号《书所集录》
