目录
一、GUI图形用户界面编程
二、常用的GUI库
三、tkinter模块
四、GUI编程的核心步骤
①创建应用程序主窗口对象(也称:根窗口)
②tkinter主窗口
③常用组件
一、GUI图形用户界面编程
我们前面实现的都是基于控制台的程序,程序和用户的交互通过控制台来完成。本章,我们将学习GUI(图形用户界面编程),我们可以通过python提供的丰富的组件,快速的实现使用图形界面和用户交互。
GUI编程类似于“搭积木”,将一个个组件放到窗口中。各种按钮、菜单、编辑区域等都是一个个组件,它们都放置到窗口中,并通过增加“对事件的处理”成为一个完整的程序。
二、常用的GUI库
1.Tkinter
tkinter (Tk interface)是 Python的标准GUI库,支持跨平台的GUI程序开发。tkinter适合小型的GUI程序编写也特别适合初学者学习GUI编程。
2. wxPython
wxPython是比较流行的GUI库,适合大型应用程序开发,功能强于tkinter ,整体设计框架类似于MFC(Microsoft Foundation Classes微软基础类库)。
3. PyQT
Qt是一种开源的GUI库,适合大型GUI程序开发, PyQT是Qt王具包标准的Python实现。我们也可以使用Qt Desginer界面设计器快速开发GUI应用程序。
三、tkinter模块
本章中涉及大量的API讲解。学习API最好的来源就是官方提供的文档Tk图形用户界面(GUI) — Python 3.10.2 文档/zh-cn/3.10/library/tk.html
四、GUI编程的核心步骤
①创建应用程序主窗口对象(也称:根窗口)
(1)通过类Tk的无参构造函数
from tkinter import *root=Tk()
(2)在主窗口中,添加各种可视化组件,比如:按钮 (Button)、文本框(Label)等。
btn01=Button(root)btn01["text"]="点我"
(3)通过几何布局管理器,管理组件的大小和位置
btn01.pack()
(4)事件处理,通过绑定事件处理程序,响应用户操作所触发的事件(比如:单击、双击等)
def aini(e):messagebox.showinfo("Message","我爱你")print("I love you") #控制台打印btn01.bind("<Button-1>",aini)#事件绑定
总代码
from tkinter import *from tkinter import messageboxroot=Tk()btn01=Button(root)btn01["text"]="点我"btn01.pack()def aini(e):messagebox.showinfo("Message","我爱你")print("I love you") #控制台打印btn01.bind("<Button-1>",aini)#事件绑定root.mainloop() #调用组件的mainloop()方法,进入事件循环
②tkinter主窗口
主窗口位置和大小
通过geometry('wxh ±x±y')进行设置。w为宽度, h为高度。+x表示距屏幕左边的距离;-x表示距屏幕右边的距离;+y表示距屏幕上边的距离;-y表示距屏幕下边的距离。
from tkinter import *root = Tk()root.geometry("500x300+100+200") #500x(注意是x)300表示窗口大小,+100+200表示距屏幕的距离
③常用组件
五、GUI应用程序类的经典写法
156