GUI (Graphics User Interface),即图形用户界面编程,我们可以通过python提供的丰富的组件,快速实现使用图形化界面的交互。
基于tkinter模块的GUI
Tkinter的官方网址:https://docs.python.org/3.7/library/tk.html
基于tkinter模块创建的程序包含如下4个核心步骤:
1、创建应用的主窗口对象(根窗口)
2、在主窗口中添加可视化组件,比如:按钮(Button)、文本框(Lable)等
3、通过几何布局管理器,管理组件的大小和位置
4、事件处理
【示例】
from tkinter import *
from tkinter import messagebox
root = Tk()
btn01 = Button(root)
btn01['text'] = "点我就送花"
btn01.pack()
def songhua(e):
messagebox.showinfo("Message","送你一朵玫瑰花,请你爱上我")
print("送你99朵玫瑰花")
btn01.bind("<Button-1>",songhua)
root.mainloop()
采用面向对象的编程语言处理GUI应用程序:
通过类Application组织整个GUI程序,类Application继承了Frame及通过继承拥有了父类的特性。
【示例】
"""测试一个经典的GUI程序的写法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):
"""一个经典的GUI程序的类的写法"""
def __init__(self, master=None):
super().__init__(master) # super()代表的是父类的定义,而不是父类对象
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
"""创建组件"""
self.btn01 = Button(self)
self.btn01["text"] = "点击送花"
self.btn01.pack()
self.btn01["command"] = self.songhua
# 创建一个退出按钮
self.btnQuit = Button(self, text="退出",command=root.destroy)
self.btnQuit.pack()
def songhua(self):
messagebox.showinfo("送花", "送你99 朵玫瑰花")
if __name__ == '__main__':
root = Tk()
root.geometry("400x100+200+300")
root.title("一个经典的GUI 程序类的测试")
app = Application(master=root)
root.mainloop()
简单组件
Label 标签
Label 标签主要用于显示文本信息,也可以显示图像。
【示例】
"""测试Label 组件的基本用法,使用面向对象的方式"""
from tkinter import *
class Application(Frame):
def __init__(self, master=None):
super().__init__(master) # super()代表的是父类的定义,而不是父类对象
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
"""创建组件"""
self.label01 = Label(self, text="今天9月份啦", width=12, height