Python跨平台应用软件开发实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 Python界面开发的方法

在应用软件开发时,界面往往是非常重要和庞大的部分,认识到界面的作用和意义,并学会设计界面,是应用软件开发工作中必要的技能。本节来学习一下常用的界面库和开发方法。

1.2.1 理解界面的意义

初学者学习Python编程语言时,往往都是基于控制台进行输出的,比如一个简单的99乘法表:

运行结果见图1-18。

●图1-18 打印99乘法表

在学会了编程的语法后,到实际的应用软件开发时就需要考虑用户体验,进行界面设计,那么界面的作用是什么呢?

界面通过一系列常用窗体和控件,使用户可以对软件进行可视化操作,从而大大方便了开发者对软件的使用。这里以一个PDF文件处理工具软件为例,软件能够提供合并文件和拆分文件的功能,如果仍然使用之前的方式,那么可能会是以下这种形式(见图1-19)。

●图1-19 命令行模式下的问答式使用流程

而通过界面设计再展现给用户使用,就非常直观了(见图1-20)。

对于一些追求极致运行效率的服务来说,比如网络服务器程序,或者机器学习训练算法,一般是不需要界面的,命令行模式运行效率更高。但是对于大部分应用软件来说,一个美观可用的界面,是应用软件受欢迎的重要原因,本书的所有应用软件开发,也会重点讲解如何进行相应的界面开发。

●图1-20 采用图形界面的PDF工具

1.2.2 常用的界面库介绍

想要使用界面开发,首先要了解在Python中有哪些界面库可供使用,一般来说,常用的Python界面库有以下几种。

1.tkinter

历史最悠久的Python GUI工具集,这是Python安装包内置的图形库,属于Python标准库的一部分,它是初学者进行GUI开发的首选,提供了基本完整的界面控件库,在代码层面调取方便,但官方未提供界面设计器。

2.PyQt

PyQt是Python对专业的跨平台GUI工具集Qt的包装,作为一个插件来使用,不但提供了丰富的界面控件库,也提供了功能强大的界面设计器(见图1-21),可以开发美观的界面,跨平台的支持也很好。需要注意的是如果进行商业软件开发,需要付费取得授权。

●图1-21 PyQt的界面设计器

3.wxPython

wxPython是Python对跨平台GUI工具集wxWidgets的包装,并提供一个可视化的设计器wxFormBuilder。wxPython作为一个插件具有一定的流行度,老版本的wxPython不支持Python3.x,官方网站是https://wxPython.org/(见图1-22)。

●图1-22 wxPython的logo

1.2.3 一个简单的tkinter界面程序

在进行应用软件开发之前,首先可以尝试手动编写一个tkinter界面程序来作为开始,下面用VSCode创建一个Hello.py,在其中编写以下代码。

运行效果见图1-23,包括了一个文字标签和两个按钮。

●图1-23 使用tkinter开发的“hello,world!”程序

下面是代码注释。

以上代码展示了一个基本的tkinter界面对话框程序。在进行应用软件开发时,开发者可以选择完全基于代码来编写界面,但是面对较大的工程时,处理界面控件和事件逻辑相关的工作就会变得非常烦琐,这时就需要一个强大的可视化开发工具来辅助设计,才能更好地辅助开发者完成工作任务。表1-3展示了不同开发流程对任务的影响。

表1-3 纯手写代码与工具化开发流程对比

通过对比可以看到工具化开发流程的明显优越性,本书也将基于PyMe开发工具来实现所有的应用案例工程,帮助开发者建立良好的工具化开发流程。