Python 支持多种图形界面的第三方库,包括html
Python 提供的 Tkinter 模块,就是 Tk GUI 工具包的接口。python
Tk 是图形库,支持多种操做系统,使用 Tcl 语言开发;segmentfault
Tk 会调用操做系统提供的本地 GUI 接口,完成最终的 GUI。微信
因此代码实现的只须要调用 Tkinter 提供的接口就能够。app
编写 “Hello World”,此次使用 Tkinter 模块完成。函数
先导入 Tkinter 库工具
Python 3.x 版本,Tkinter 库已经更改成 tkinter,导入命令以下:
from tkinter import *
或者oop
import tkinter
从 Frame
派生一个 Application
类,这是全部 Widget 的父容器:布局
class Application(Frame): '''由 Frame 派生 Application ''' def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.create_widgets() def create_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。ui
pack()
方式把 Widget 加入父容器中,并实现布局。pack()
是最简单的布局, grid()
网格布局能够实现更复杂的布局。
在 create_widgets()
方法中,建立一个 Label
和 Button
,当 Button 被点击时,触发 self.quit()
使程序退出。
而后,实例化 Application
,并启动消息循环:
# 实例化 Application app = Application() # 设置窗口标题 app.master.title('Hello World') # 主消息循环 app.mainloop()
GUI 程序的主线程负责监听来自操做系统的消息,并依次处理每一条消息。所以,若是消息处理很是耗时,就须要在新线程中处理。
运行上面程序的效果:
点击 Quit
按钮退出或者左上角的 x
结束程序
上面的例子是以直接输出的形式,如今尝试加入一个文本框,让用户能够输入文本,点击按钮能够读取输入信息,并弹出消息对话框显示输入的信息。
from tkinter import * import tkinter.messagebox as messagebox class Application(Frame): def __init__(self, master=None): '''初始化函数 ''' Frame.__init__(self, master) self.pack() self.create_widgets() def create_widgets(self): '''建立部件 ''' self.name_input = Entry(self) self.name_input.pack() self.alert_button = Button(self, text='Hello', command=self.hello) self.alert_button.pack() def hello(self): '''接收用户输入,显示信息 ''' name = self.name_input.get() or 'world' messagebox.showinfo('Message', 'Hello, {}'.format(name)) # 实例化 Application app = Application() # 设置窗口标题 app.master.title('Hello World') # 主消息循环 app.mainloop()
代码运行流程,当用户点击按钮,触发 hello()
,经过 self.name_input.get()
得到用户输入的文本后,使用 messagebox.showinfo()
弹出消息对话框。
程序运行的效果以下:
这里只是简单的尝试使用 Tkinter 模块完成简单的实例,Tkinter 模块能完成的功能远不止这些。详细的信息能够参考 TKDocs https://tkdocs.com/tutorial/index.html
以上就是本篇的主要内容。
欢迎关注微信公众号《书所集录》