1.1 Python开发环境搭建

Python自带了编程环境,但是功能较弱,可以用第三方提供的开发环境进行Python程序和PySide GUI程序的开发,本书在PyCharm环境下编写Python程序和PySide GUI程序。

1.1.1 Python和PySide简介

1.Python简介

Python是一种跨平台高级语言,可以用于Windows、Linux和Mac平台上。Python语言简洁明了,即便是非软件专业的初学者也很容易上手。相对于其他编程语言来说,Python有以下几个优点:

(1)Python是开源免费的,用户使用Python进行开发或者发布自己的程序不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python也是免费的。

(2)Python的语法简单,和传统的C/C++、Java、C#等语言相比,Python对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较轻松,不用在细枝末节上花费太多精力。

(3)Python是高级语言,封装较深,屏蔽了很多底层细节,比如Python会自动管理内存(需要时自动分配,不需要时自动释放)。

(4)Python是解释型语言,可应用于多个平台上,可移植性好。

(5)Python是面向对象的编程语言,可用于高效地开发GUI程序。

(6)Python有广泛的第三方应用程序包,用pip命令就可以安装,扩展性强,可以帮助用户完成各种各样的程序。它覆盖了文件I/O、数值计算、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。

2.PySide简介

PySide是Qt在Python的绑定,是将C++开发环境下的Qt移植到Python环境下。由于Python语句简单,用Python语言开发Qt应用程序就变得相对容易。下面内容是PySide几个主要模块的简介,其中QtWidgets、QtCore和QtGui是基本模块,开发GUI时都会用这三个模块,其他模块是扩展模块。本书用到的模块有QtWidgets、QtCore、QtGui、QtWebEngineWidgets、QtChart、QtMultimedia、QtSql和QtPrintSupport。

· QtWidgets是窗口模块,提供窗口类和窗口上的各种控件(按钮、菜单、输入框、列表框等)类。

· QtCore是核心模块,是其他模块的应用基础,包括五大模块:元对象系统、属性系统、对象模型、对象树、信号与槽。QtCore模块涵盖了PySide核心的非GUI功能,此模块被用于处理程序中涉及的时间、文件、目录、数据类型、文本流、链接、MIME、线程或进程等对象。

· QtGui模块涵盖多种基本图形功能的类,包括事件处理、2D图形、基本的图像和字体文本等。

· QtSql模块提供了常用关系型数据库的接口和数据库模型,方便读写数据库中的数据。

· QtMultimedia模块包含处理多媒体事件的类库,通过调用API接口访问摄像头、语音设备,播放音频和视频,录制音频和视频及拍照等。

· QtChart和QtDataVisualization模块用于数据可视化,可以绘制二维和三维数据图表。

· QtPrintSupport模块提供打印支持,能识别系统中安装的打印机并进行打印,可以对打印参数进行设置,提供打印对话框和打印预览对话框。

· QtBluetooth模块包含了处理蓝牙的类库,它的功能包括扫描设备、连接、交互等。

· QtNetwork模块包含用于网络编程的类库,这组类库通过提供便捷的TCP/IP及UDP的c/s程式码集合,使得网络编程更容易。

· QtWebEngine和QtWebEngineWidgets模块借助开源的Chromium浏览器,在应用程序中嵌入Web浏览功能。

· QtXml模块包含了用于处理XML的类库,提供实现SAX和DOM API的方法。

· QtOpenGL、QtOpenGLFunctions和QtOpenGLWidgets模块使用OpenGL库来渲染3D和2D图形,该模块使得Qt GUI库和OpenGL库无缝集成。

· QtDesigner模块可以为Qt Designer创建自定义控件。

· QtSvg模块为显示矢量图形文件的内容提供了函数。

· QtTest模块包含了可以通过单元测试调试PySide应用程序的功能。

· QtStateMachine模块可以创建和执行状态图。

· QtHelp模块可以为应用程序集成在线帮助。

· QtConcurrent模块支持多线程程序。

· Qt3DCore、Qt3DInput、Qt3DRender、Qt3DAnimation、Qt3DLogic、Qt3DExtras等模块提供三维渲染、三维实时动画。

1.1.2 Python开发环境的建立

编写Python程序,可以在Python自带的交互式界面开发环境中进行。由于其自带的开发环境的提示功能和操作功能不强大,因此可以在第三方提供的专业开发环境中编写Python程序,例如PyCharm,然后调用Python的解释器运行程序。本书中Python程序的编写既可以在Python自带的开发环境中进行,也可以在第三方开发环境中进行,由读者根据自己的爱好自行决定。

1.安装Python

Python是开源免费开发程序,用户可以到Python的官网上直接下载Python安装程序。登录Python的官方网站,可以直接下载不同平台上不同版本的安装程序。Python的安装文件不大,最新3.10.2版只有27.6MB。单击Downloads,可以找到不同系统下的各个版本的Python安装程序。下载Python安装程序时,根据自己的计算机是32位还是64位选择相应的下载包,例如单击Windows installer(64-bit)可以下载64位的可执行安装程序,一般选择该项即可;单击Windows embeddable package(64-bit)表示使用zip格式的绿色免安装版本,可以直接嵌入(集成)到其他的应用程序中;单击web-based installer表示通过网络安装,也就是说下载的是一个空壳,安装过程中还需要联网下载真正的Python安装包。Python安装程序也可以在国内的一些下载网站上找到,例如在搜索引擎中输入“Python下载”,就可以找到下载链接。

以管理员身份运行Python的安装程序python-3.10.2-amd64.exe,在第1步中,如图1-1所示,选中Add Python 3.10 to PATH,单击Customize installation项;在第2步中,勾选所有项,其中pip项专门用于下载第三方Python包。单击Next按钮进入第3步,勾选Install for all users项,并设置安装路径,不建议安装到系统盘中,单击Install按钮开始安装。安装路径会自动保存到Windows的环境变量PATH中,Python可以多个版本共存在一台机器上。安装完成后,在Python的安装目录Scripts下出现pip.exe和pip3.exe文件,用于下载其他安装包。

图1-1 Python的安装过程

安装完成后,需要测试一下Python是否能正常运行。从Windows的已安装程序中找到Python自己的开发环境IDLE,如图1-2所示,在“>>>”提示下输入“1+2”或者“print("hello")”并按Enter键,如果能返回3或者hello,说明Python运行正常。

图1-2 测试Python

2.安装PySide6及其他包

安装完Python后,接下来需要安装本书用到的包PySide6、openpyxl、pyinstaller、qt-material和pymysql,每个包可以单独安装,也可以一次安装多个,下面介绍Windows系统中安装PySide6的步骤。以管理员身份运行Windows的cmd命令窗口,输入pip install pyside6后按Enter键就可以安装PySide6包,如图1-3所示。也可以用pip install pyside6 openpyxl pyinstaller pymysql命令一次安装多个包。如果要卸载包,可以使用pip uninstall pyside6命令。

图1-3 安装PySide6包

有些安装包比较大,例如PySide6有156.6MB,如果直接从国外网站上下载PySide6可能比较慢,可以使用镜像网站下载,例如清华大学的镜像网站,格式如下所示。

      pip install pyside6-i https://pypi.tuna.tsinghua.edu.cn/simple
3.安装PyCharm

如果只是编写简单的程序,在Python自带的开发环境中写代码是可以的。但对于专业的程序员来说,其编写的程序比较复杂,在Python自带的开发环境中编写代码就有些捉襟见肘了,尤其是编写面向对象的程序,无论是代码提示功能还是出错信息的提示功能远没有专业开发环境的功能强大。PyCharm是一个专门为Python打造的集成开发环境(IDLE),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。PyCharm可以直接调用Python的解释器运行Python程序,极大地提高了Python的开发效率。

PyCharm由Jetbrains公司开发,可以在其官网上下载,如图1-4所示,PyCharm有两个版本,分别是Professional(专业版)和Community(社区版)。专业版是收费的;社区版是完全免费的,单击Community下的Download按钮可以下载社区版PyCharm。在搜索引擎中输入“PyCharm下载”,也可以在其他下载平台找到PyCharm下载链接。

图1-4 PyCharm下载页面

以管理员身份运行下载的安装程序pycharm-community-2021.3.2.exe(读者下载的版本可能与此不同),在第1个安装对话框中单击Next按钮,在第2个安装对话框中设置安装路径,如图1-5所示。单击Next按钮,在第3个安装对话框中勾选.py项,将py文件与PyCharm关联,单击Next按钮,在最后一个安装对话框中单击Install按钮开始安装,最后单击Finish按钮完成安装。

图1-5 PyCharm的安装过程

1.1.3 Python开发环境使用基础

1.Python自带集成开发环境

在安装Python时,同时也会安装一个集成开发环境IDLE,它是一个Python Shell(可以在打开的IDLE窗口的标题栏上看到),在“>>>”提示下逐行输入Python程序,每输入一行后按Enter键,Python就执行这一行的内容。前面我们已经应用IDLE输出了简单的语句,但在实际开发中,需要编写多行代码时,应在写完代码后一起执行所有的代码,以提高编程效率,为此可以单独创建一个文件保存这些代码,待全部编写完成后一起执行。

在IDLE主窗口的菜单栏上选择File→New File命令,将打开Python的文件窗口,在该窗口中直接编写Python代码。在输入一行代码后再按Enter键,将自动换到下一行,等待继续输入。单击菜单File→Save后,再单击菜单Run→Run Module或按F5键就可以执行,结果将在Shell中显示。文件窗口的Edit和Format菜单是常用的菜单,Edit菜单用于编辑查找,Format菜单用于格式程序,例如使用Format→Indent Region可以使选中的代码右缩进。单击菜单Options→Configure IDLE可以对Python进行设置,例如更改编程代码的字体样式、字体大小、字体颜色、标准缩进长度、快捷键等。

在文件窗口中输入下面一段代码,按F5键运行程序,在Shell窗口中可以输出一首诗,如图1-6所示。

      #Demo 1_1.py
      print(''*20)
      print(''*10+     '春晓')
      print(''*15+     '----孟浩然')
      print('春眠不觉晓,处处闻啼鸟.')
      print('夜来风雨声,花落知多少.')

图1-6 Python文件窗口和Shell窗口

在文件窗口中打开本书实例Demo1_2.py,见下面的代码,按F5键后运行程序,得到一个窗口。对该程序的解释见下一节的内容。

      import sys #Demo1_2.py
      from PySide6 import QtCore,QtGui,QtWidgets
      app=QtWidgets.QApplication(sys.argv)
      myWindow=QtWidgets.QWidget()
      myWindow.setWindowTitle('Demo1_2')
      myWindow.resize(500,400)
      myButton=QtWidgets.QPushButton(myWindow)
      myButton.setGeometry(150,300,150,50)
      myButton.setText('关闭')
      str1_1=   ''*10+    '程序员之歌\n'
      str1_2=   ''*15+    '---《江城子》改编\n'
      str1_3=   '''
      十年生死两茫茫,写程序,到天亮.\n\
      千行代码,Bug何处藏.\n\
      纵使上线又怎样,朝令改,夕断肠.\n\
      领导每天新想法,天天改,日日忙.\n\
      相顾无言,惟有泪千行.\n\
      每晚灯火阑珊处,程序员,正加班.
      '''
      peo=str1_1+str1_2+str1_3
      myLabel=QtWidgets.QLabel(myWindow)
      myLabel.setText(peo)
      myLabel.setGeometry(50,10,400,300)
      font=QtGui.QFont()
      font.setPointSize(15)
      myLabel.setFont(font)
      myButton.setFont(font)
      myButton.clicked.connect(myWindow.close)
      myWindow.show()
      sys.exit(app.exec())
2.PyCharm集成开发环境

要使PyCharm成为Python的集成开发环境,需要将Python设置成PyCharm的解释器。启动PyCharm,如图1-7所示,在欢迎对话框中,选择New Project项,弹出New Project设置对话框,在Location中输入项目文件的保存路径,该路径应为空路径,选中New environment using,并选择Virtualenv,从Base interpreter中选择Python的解释器python.exe,勾选Inherit global site-packages和Make available to all projects,将已经安装的包集成到当前项目中,并将该配置应用于所有的项目。最后单击Create按钮,进入PyCharm开发环境。

PyCharm正常启动后,也可以按照下面步骤添加新的Python解释器。单击菜单File→Settings打开设置对话框,单击左侧项目下的解释器Python Interpreter,然后单击右边Python Interpreter后面的按钮,选择Add,弹出添加Python解释器的对话框,如图1-8所示,左侧选择System Interpreter,单击右侧Interpreter后的按钮,弹出选择Python解释器的对话框,找到Python安装目录下的python.exe文件,单击OK按钮,回到设置对话框,右边将显示已经安装的第三方程序包。最后单击OK按钮关闭所有对话框。

进入PyCharm后,单击File→New菜单,然后选择Python File,输入文件名并按Enter键后,建立Python新文件,输入代码后,要运行程序,需要单击菜单Run→Run命令后选择对应的文件,即可调用Python解释器运行程序。

图1-7 配置Python解释器

图1-8 选择Python解释器对话框