python GUI小试(Pyside6)

文摘   2024-11-09 21:20   江苏  

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开发界面(简单示例)

(1)在cmd终端启动designer    
pyside6-designer

(2)选择Widget,并单击创建,界面如下

(3)添加Label组件,编辑文本为“Hello World”

(4)保存文件,Hello_world.ui
(5)将ui文件转换为py文件
pyside6-uic Hello_world.ui > ui.py
    转换成功后,python代码如下:
# -*- 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
    注意:使用pyside6-uic转换出来的py文件不是utf-8编码,因此还需要用编辑器将其保存为utf-8


04

如何将py代码的界面展示出来

  • 新建py文件

    hello.py

#导入sysimport 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_()))
  • 运行之后:



SongBot视觉实验室
主流工业机器人和机器视觉的各类应用编程技术介绍,以及技术支持和技术培训服务
 最新文章