GUI图形用户界面编程介绍_Qt

我们前面实现的都是基于控制台的程序,程序和用户的交互通过控制台来完成。

本章,我们将学习GUI(Graphics User Interface),即图形用户界面编程,我们可以通过python提供的丰富的组件,快速的实现使用图形界面和用户交互。

GUI编程类似于“搭积木”,将一个个组件(Widget)放到窗口中。如下是windows中的画图软件,就是一个典型的GUI程序:

GUI图形用户界面编程介绍_Qt_02

上面的各种按钮、菜单、编辑区域等都是一个个组件,它们都放置到窗口中,并通过增加“对事件的处理”成为一个完整的程序。

常用的GUI库

  1. Tkinter
    tkinter(Tk interface)是Python的标准GUI库,支持跨平台的GUI程序开发。tkinter适合小型的GUI程序编写,也特别适合初学者学习GUI编程。我们以tkinter为核心讲解。
  2. wxPython
    wxPython是比较流行的GUI库,适合大型应用程序开发,功能强于tkinter,整体设计框架类似于MFC(Microsoft Foundation Classes微软基础类库)
  3. PyQT
    Qt是一种开源的GUI库,适合大型GUI程序开发,PyQT是Qt工具包标准的Python实现。我们也可以使用Qt Desginer界面设计器快速开发GUI应用程序

tkinter模块

本章中,涉及大量的API讲解。学习API最好的来源就是官方提供的文档:tkinter官方网址:

https://docs.python.org/3.7/library/tk.html

或者:http://effbot.org/tkinterbook/ (相对规整,适合初学者查找)

由于官方都是英文,我们在授课过程中尽量不涉及。英文好的同学可以自行查找相关说明。我们也希望英文较差的同学也能尽量多的学习英文,对于后续技术的理解有较大的帮助。大家也可以去“北京尚学堂”官网下载我们提供的常见1800个开发词汇

GUI编程的核心步骤和第一个GUI程序

基于tkinter模块创建GUI程序包含如下4个核心步骤:

  1. 创建应用程序主窗口对象(也称:根窗口)
    过类Tk的无参构造函数
1from tkinter import *2root = Tk()
  1. 在主窗口中,添加各种可视化组件,比如:按钮(Button)、文本框(Label)等
1btn01 = Button(root)2btn01["text"] = "点我就送花"
  1. 通过几何布局管理器,管理组件的大小和位置
1btn01.pack()
  1. 事件处理
    通过绑定事件处理程序,响应用户操作所触发的事件(比如:单击、双击等)
1def songhua(e):2  messagebox.showinfo("Message","送你一朵玫瑰花,请你爱上我")3  print("送你99朵玫瑰花")45btn01.bind("",songhua)

【示例】使用tkinter模块,创建GUI应用程序,并实现点击按钮的事件处理

1from tkinter import *2from tkinter import messagebox 34root = Tk()5btn01 = Button(root)6btn01["text"] = "点我就送花"7btn01.pack()89def songhua(e):10  messagebox.showinfo("Message","送你一朵玫瑰花,请你爱上我")11  print("送你99朵玫瑰花")1213btn01.bind("",songhua)1415root.mainloop()    #调用组件的mainloop方法,进入事件循环