PySide2基础篇(一)——安装并运行一个窗口程序

前言:
阅读这篇文章我能学到什么?
  这篇文章教会你安装PySide2并运行第一个自己的窗口程序。

1 PyQt和PySide2区别

1.1 遵照的开源协议不同

  PyQt遵照的是GPLv3协议,这个协议要求如何使用了遵照此协议的开源代码(不管是原封不动的当做库来使用,还是自己有修改的二次开发后使用),也必须是开源的,不允许闭源商用(注意不是不允许商用,是不允许闭源商用)。
  PySide遵照的是LGPL协议,此协议允许你将遵照此协议的开源库(不能修改只能当做库来使用,如果二次开发修改了也必须开源)用于闭源商用。
  需要注意的是较多的开源软件声明了遵照GPL协议,是不允许用于闭源商用的。总之,开源是有限制的开源。

1.2 为什么选择PySide2

  PyQt是Riverbank Computing公司维护的,已经维护了多年,相对稳定,开发社区较大,相关资料或教程也丰富。PySide是Qt公司自己维护的,起步较晚,资料相对较少。但是PySide2是Qt公司的“亲儿子”,后续一定会维护得更好,用的人会越来越多成为主流,资料会随之丰富。另外一个原因是它可以用于闭源商用。

2 安装PySide2

  以下两种安装方式任远一种即可。

2.1 通过Pypi安装

  在命令行下运行:pip install PySide2,将会自动开始下载安装,大概有一百多M。如果网络太差可以使用清华的镜像进行安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyside2

2.2 通过Http安装

  在命令行下运行:pip install --index-url=http://download.qt.io/snapshots/ci/pyside/5.13.0/latest pyside2 --trusted-host download.qt.io,注意这里的5.12.6是版本号,自己根据需要的版本去选择安装。

2.3 安装失败解决办法

  安装中途失败一般是网络太差,国内建议使用清华的镜像安装。如果提示pip版本太低,则需要更新版本,更新只需要在命令行运行:python -m pip install --upgrade pip

3 运行第一个程序

  IDE本文以PyCharm来举例。

3.1 创建空工程

  选一个地方创建一个文件夹取名为“Test”即工程名,“Test”文件夹内新建一个文件“Test.py”即源码文件。通过PyCharm打开”Test“文件夹。

CreateProject.png

3.2 部署环境

Environmental1.png

  第5步需要注意,PyCharm可能会有自己备份的虚拟python环境,如果你按上面的步骤安装了PySide2,那么它默认是安装在你在的全局python环境,而不是PyCharm的虚拟python环境里,所以你需要选择你自己的全局python环境。

Environmental2.png

  点击上方Run -> Run "Test",在弹出的框里继续选择和上面同样的python环境,然后Apply确认就行了。

  将如下代码拷贝进去,然后点Run运行。具体代码含义等以后再慢慢分析,现在先让程序跑起来,看下效果。
代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton,  QPlainTextEdit

app = QApplication([]) #创建app对象

Window = QMainWindow() #创建Window对象
Window.resize(250, 200) #设置Window大小
Window.move(300, 300) #设置Window左上角位置
Window.setWindowTitle('WindowTitle') #设置Window标题

TextEdit = QPlainTextEdit(Window) #创建TextEdit对象
TextEdit.setPlaceholderText("Default Text") #设置编辑框默认信息系
TextEdit.move(10, 25) #设置编辑框位置
TextEdit.resize(120, 50) #设置编辑框大小

Button = QPushButton('Button', Window) #创建按钮对象
Button.move(20, 100) #设置按钮位置

Window.show() #显示窗口
app.exec_() #等待消息响应(死循环)

运行结果:

Window.png