一、前言
使用python最舒服的地方就在于,它内部有大量的库可供我们直接使用,而且使用起来还相当的方便。
前面章节我们一直围绕的都是基本语法的讲解,到目前为止,python大部分的基础语法我们就已经学习完了,已经完全可以开始写软件了。
所以从本章开始,就要开始带大家了解超脱语言本身的知识点,并学会如何使用python,通过大量好用的库,来完全一些看起来很麻烦的任务。
二、GUI与CLI对比
GUI
是Graphical User Interface
(图形用户界面)的缩写,也就是我们平常电脑、手机上看到的各种软件界面,比如qq、微信等等。
而与之相对的就是CLI
,是Command Line Interface
(命令行接口)的简写,也就是到目前为止我们一直看到的输出字符的命令行窗口(也称终端)。
两者的区别非常明显,GUI
适用于给那些对编程并不了解的人使用,它的编写会更加的复杂,使用起来会更加的简单,可以通过鼠标进行操作。
而CLI
则更适用于给专业的人使用,你只能通过敲击字符来控制程序,编写起来更加的简单,但使用起来更加麻烦,甚至很多时候你还需要有相关的专业知识才行。
三、GUI原理
在正式写GUI程序前,了解它的原理是很有必要的,否则你写完代码依旧迷迷糊糊不知缘由,一旦出错,很难找到问题所在。
如果你了解C/C++,那么可以参考另外一篇文章学习如何从零制作一个自己的窗口:windows编程入门
从前面的编程中我们已经看到了,程序的执行流程就是从开始到结束,顺序执行下来的,所以你想要让一个程序一直运行起来,那就只能使用循环:
cmd = input('输入命令:')
while cmd != 'exit':
print(f'你输入的命令为:{cmd}')
cmd = input('输入命令:')
print('程序退出!')
结果为:
这就是一个最简单的CLI
程序,你可以通过用户输入的不同命令,来执行不同的代码就行了。
而GUI
程序虽然复杂一点,但本质上却同样如此:
- 运行程序、进入循环
- 等待用户的鼠标、键盘消息
- 处理鼠标键盘消息
这就是一个GUI
程序的基本运行流程,它有一个非常重要的概念:消息。
这个消息就是当你鼠标移动的时候、当你键盘敲击的时候,你的电脑系统就会自动触发,并将这个消息发送给你这个GUI程序中,然后你处理这个消息就行了!
就是这么的简单!
如果是C/C++语言,这一过程并不简单,因为消息纷繁复杂,但这是在
python
语言中,我们了解到这里就已经足够了
一个GUI
程序的大概流程为:
- 初始化界面(提前布局好我们的界面)
- 进入消息循环(一般GUI库会提供这样一个函数,然后程序运行到此就会卡住,等待系统不断发送消息过来)
- 处理发送来的消息
GUI库有很多,原理都是如此(这是因为操作系统底层就是这么干的),而本文所要介绍的是python自带的GUI库:tkinter
如果觉得自带的不好用,当然你也可以去使用其它第三方的GUI库,都是可以的,这在python中非常简单,后面章节我会再进行介绍。
注意:如果你安装python的时候是自定义安装,没有勾选td/tk and IDLE
这个组件,那么请重新安装、并勾选上该组件。
因为它就是我们本文要用到的tkinter
模块。
四、tkinter基本使用
1.主窗口
其官方教程可以点击这里查看。
一个最简单的GUI程序代码如下:
from tkinter import Tk
window = Tk()
window.mainloop()
实际上就只有两行代码:
Tk()
:通过该模块下的这个函数生成一个窗口实例对象- 调用窗口的
mainloop
函数,进入消息循环
是不是非常的简单!
这个函数(类的初始化函数)有很多参数,但大多数情况下,你应该都用不上他们,而且这会涉及到很多底层的内容,避免加重学习负担,所以这里也不再过多介绍。
首先第一步肯定就是调整这个窗口的名称、大小、位置。
window = Tk()