Python全系列 教程
3567个小节阅读:5931.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
我们前面实现的都是基于控制台的程序,程序和用户的交互通过控制台来完成。
本章,我们将学习GUI(Graphics User Interface),即图形用户界面编程,我们可以通过python提供的丰富的组件,快速的实现使用图形界面和用户交互。
GUI编程类似于“搭积木”,将一个个组件(Widget)放到窗口中。如下是windows中的画图软件,就是一个典型的GUI程序:
上面的各种按钮、菜单、编辑区域等都是一个个组件,它们都放置到窗口中,并通过增加“对事件的处理”成为一个完整的程序。
Tkinter
tkinter(Tk interface)是Python的标准GUI库,支持跨平台的GUI程序开发。tkinter适合小型的GUI程序编写,也特别适合初学者学习GUI编程。我们以tkinter为核心讲解。
wxPython
wxPython是比较流行的GUI库,适合大型应用程序开发,功能强于tkinter,整体设计框架类似于MFC(Microsoft Foundation Classes微软基础类库)
PyQT
Qt是一种开源的GUI库,适合大型GUI程序开发,PyQT是Qt工具包标准的Python实现。我们也可以使用Qt Desginer界面设计器快速开发GUI应用程序
本章中,涉及大量的API讲解。学习API最好的来源就是官方提供的文档:tkinter官方网址:
https://docs.python.org/3.7/library/tk.html
或者:http://effbot.org/tkinterbook/ (相对规整,适合初学者查找)
由于官方都是英文,我们在授课过程中尽量不涉及。英文好的同学可以自行查找相关说明。我们也希望英文较差的同学也能尽量多的学习英文,对于后续技术的理解有较大的帮助。大家也可以去“北京尚学堂”官网下载我们提供的常见1800个开发词汇
基于tkinter模块创建GUI程序包含如下4个核心步骤:
创建应用程序主窗口对象(也称:根窗口)
过类Tk的无参构造函数
xxxxxxxxxx
from tkinter import *
root = Tk()
在主窗口中,添加各种可视化组件,比如:按钮(Button)、文本框(Label)等
xxxxxxxxxx
btn01 = Button(root)
btn01["text"] = "点我就送花"
通过几何布局管理器,管理组件的大小和位置
xxxxxxxxxx
btn01.pack()
事件处理
通过绑定事件处理程序,响应用户操作所触发的事件(比如:单击、双击等)
xxxxxxxxxx
def songhua(e):
messagebox.showinfo("Message","送你一朵玫瑰花,请你爱上我")
print("送你99朵玫瑰花")
btn01.bind("" ,songhua)
【示例】使用tkinter模块,创建GUI应用程序,并实现点击按钮的事件处理
xxxxxxxxxx
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("" ,songhua)
root.mainloop() #调用组件的mainloop方法,进入事件循环