01
什么是Pyside6
Pyside6是QT的python封装
(QT是一种常用的GUI框架,本身由C++开发)
目前有两种QT对应的Python工具
PySide:是Qt公司的产品,可以在LGPT协议下使用
PyQt:是第三方公司的产品,在GPL协议上使用(开发的软件必须开源,否则存在被告的风险)
PySide目前常见有两个版本
PySide2:由C++版的QT5开发而来
PySide6:由C++版的QT6开发而来
二者提供的接口几乎一致
二者差异不大,但使用PySide6开发的程序在默认情况下不兼容Window7系统
02
如何安装PySide6
直接在终端执行pip命令安装
pip install pyside6
pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simple
03
如何使用PySide设计界面
PySide提供了两种开发界面的方式
QtWidget:网上教程较多
QML:新型的开发方式,Qt正在努力推广 使用QtWidget开发程序的两种基本方法
通过designer开发界面
手撸代码 通过designer开发界面(简单示例)
pyside6-designer
pyside6-uic Hello_world.ui > ui.py
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'hello_world.ui'
##
## Created by: Qt User Interface Compiler version 6.8.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QLabel, QSizePolicy, QWidget)
class Ui_Form(object):
def setupUi(self, Form):
if not Form.objectName():
Form.setObjectName(u"Form")
Form.resize(400, 300)
self.label = QLabel(Form)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(140, 110, 131, 41))
self.retranslateUi(Form)
QMetaObject.connectSlotsByName(Form)
# setupUi
def retranslateUi(self, Form):
Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))
self.label.setText(QCoreApplication.translate("Form", u"Hello World", None))
# retranslateUi
04
如何将py代码的界面展示出来
新建py文件
hello.py
#导入sys
import sys
#任何一个Pyside界面程序dd都需要使用QApplication,用来我们自己的类继承
from PySide6.QtWidgets import QApplication,QWidget
#导入我们生成的界面
from ui import Ui_Form
#继承QWidget类,以获取其属性和方法
class MyWidget(QWidget):
def __init__(self):
super().__init__()
#设置界面为我们生成的界面
self.ui=Ui_Form();
self.ui.setupUi(self)
#程序入口
if __name__ == "__main__":
#初始化QApplicaiton,界面展示要包含在QApplication初始化之后,结束之前
app=QApplication(sys.argv)
#初始化并展示我们的界面组件
window=MyWidget()
window.show()
#接受QApplicaiton
sys.exit((app.exec_()))
运行之后: