6.pyside2
一、PySide2 、 PyQt5 简介
PySide2、PyQt5 都是基于著名的 Qt 库。 Qt 库里面有非常强大的图形界面开发库,但是 Qt 库是 C++语言开发的,PySide2、PyQt5 可以让我们通过 Python 语言使用 Qt。 PySide2 是 Qt 的 亲儿子
, PyQt5 是 Qt 还没有亲儿子之前的收的 义子
(Riverbank Computing 这个公司开发的)。 那为什么 PyQt5 这个义子 反而比 PySide2 这个亲儿子更出名呢? 原因很简单:PySide2 这亲儿子最近(2018 年 7 月)才出生。
二、 PySide2 安装
pip install pyside2
网络比较慢,可以指定国内的安装源,下载安装。
pip install pyside2 -i https://pypi.douban.com/simple/
注意
Qt 官方网站声明了: Windows上 Python 3.8.0
调用 Qt 5.14 , 会有问题。 有类似下面这样的导入错误
ImportError: Dll load failed while importing shiboken2: 找不到指定的程序
所以, 就是不能用 Python 3.8.0
,请使用 3.8.1 或者以后的版本, Python 3.7 也可以。
三、 Qt Designer
我们可以用 QT 界面生成器 Qt Designer
,拖拖拽拽就可以直观的创建出程序大体的界面。 Windows 下,运行 Python 安装目录下 Scripts\pyside2-designer.exe
这个可执行文件 通过 Qt Designer 设计的界面,最终是保存在一个 ui 文件中的。
1.Pycharm 快速打开 Designer
程序:D:\python\Lib\site-packages\PySide2\designer.exe
工作目录:$FileDir$
文件夹 右键 点击可以快速打开 Designer , 编辑保存后再该目录可以生成一个 .ui
的文件。
四、UI 文件加载
1.动态加载
我们的 Python 程序就可以从文件中加载 UI 定义,并且动态 创建一个相应的窗口对象
# 1.应用对象
from PySide2.QtWidgets import QApplication
# 2.界面UI 文件需要导入代码里
from PySide2.QtUiTools import QUiLoader
# 3.导入读取UI文件的库
from PySide2.QtCore import QFile
# 4.创建一个应用对象
app = QApplication([])
# 5.获取 UI 文件
qFile = QFile("登录系统.ui")
# 6.打开 UI 文件
qFile.open(QFile.ReadOnly)
# 7.加载 UI 对象
ui = QUiLoader().load(qFile)
# 8.关闭 UI 文件
qFile.close()
# 9.显示 UI
ui.show()
# 10.运行对象
app.exec_()
2.转化 UI 文件为 Python 代码
执行如下的命令 把 UI 文件直接转化为包含界面定义的 Python 代码文件
pyside2-uic main.ui > ui_main.py
然后在你的代码文件中这样使用定义界面的类
from PySide2.QtWidgets import QApplication,QMainWindow
from ui_main import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 使用ui文件导入定义界面类
self.ui = Ui_MainWindow()
# 初始化界面
self.ui.setupUi(self)
# 使用界面定义的控件,也是从ui里面访问
self.ui.webview.load('http://www.baidu.com')
app = QApplication([])
mainw = MainWindow()
mainw.show()
app.exec_()