[python][GUI]pyside6

news2024/9/27 5:46:15

------------------------------------------------------------------------------------------------------------------

#非常好资料和教程:

1. Module Index - Qt for Python

2. muziing/PySide6-Code-Tutorial: 可能是最好的PySide6中文教程!用代码实例讲解PySide6,附优质Demos、图标库、QSS皮肤、相关文章等分享! (github.com)

3. pyside6自带的Examples的路径:

~AppData\Local\Programs\Python\Python311\Lib\site-packages\PySide6\examples

--> 可以把这个examples的folder copy出来一个个研究

------------------------------------------------------------------------------------------------------------------

看起来需要掌握的知识点比较多,如果要系统学习的话,可以考虑买一本书学习一下:

清华大学出版社-图书详情-《Qt for Python PySide6 GUI界面开发详解与实例》 (tsinghua.edu.cn)

以下内容参考自文章:

 PySide6精简教程_钱彬 (Qian Bin)的博客-CSDN博客_pyside6

1. 安装pyside6

>>>py -m pip install pyside6 

2. 生成*.ui文件

2.1 启动qt designer

在cmd中输入:

>>>pyside6-designer

它的路径在:~AppData\Local\Programs\Python\Python311\Lib\site-packages\PySide6

新建一个widget

 保存为test_ui.ui

2.2 把*.ui文件转换为*.py的文件(转换完了之后,可以只需要*.py就可以运行,但是保留*.ui可以便于后续的修改)

注意,PySide6是不能直接使用ui文件的,我们还需要将其转为py文件。首先cd到test_ui.ui的文件夹中,然后使用命令:

>>>pyside6-uic test_ui.ui > test_ui.py

2.3 转换得到的test_ui.py文件:

# -*- coding: utf-8 -*-

################################################################################
## Form generated from reading UI file 'test_ui.ui'
##
## Created by: Qt User Interface Compiler version 6.4.1
##
## 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, QCheckBox, QPushButton, QSizePolicy,
    QWidget)

class Ui_Form(object):
    def setupUi(self, Form):
        if not Form.objectName():
            Form.setObjectName(u"Form")
        Form.resize(400, 300)
        self.checkBox = QCheckBox(Form)
        self.checkBox.setObjectName(u"checkBox")
        self.checkBox.setGeometry(QRect(130, 80, 75, 20))
        self.pushButton = QPushButton(Form)
        self.pushButton.setObjectName(u"pushButton")
        self.pushButton.setGeometry(QRect(160, 190, 75, 24))

        self.retranslateUi(Form)

        QMetaObject.connectSlotsByName(Form)
    # setupUi

    def retranslateUi(self, Form):
        Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))
        self.checkBox.setText(QCoreApplication.translate("Form", u"CheckBox", None))
        self.pushButton.setText(QCoreApplication.translate("Form", u"PushButton", None))
    # retranslateUi

2.4 调用UI的py

# 导入sys
import sys

# 任何一个PySide界面程序都需要使用QApplication
# 我们要展示一个普通的窗口,所以需要导入QWidget,用来让我们自己的类继承
from PySide6.QtWidgets import QApplication, QWidget
# 导入我们生成的界面
from test_ui import Ui_Form
 
# 继承QWidget类,以获取其属性和方法
class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        # 设置界面为我们生成的界面
        self.ui = Ui_Form()
        self.ui.setupUi(self)

# 程序入口
if __name__ == "__main__":
    # 初始化QApplication,界面展示要包含在QApplication初始化之后,结束之前
    app = QApplication(sys.argv)
 
    # 初始化并展示我们的界面组件
    window = MyWidget()
    window.show()
    # 执行QApplication
    sys.exit(app.exec())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring boot 日志直接推送到elasticsearch上

Spring boot 日志直接推送到elasticsearch前言核心依赖elasticsearch配置文件1.url格式如下2.index索引前缀 "xxx"3.maxMessageSize参数数据内容最大值,本文未使用(默认值-1全部数据接收)如下4.BasicAuthentication.java 重写该类用…

详解opencv库函数ellipse()

opencv库函数ellipse()函数可以画扇形,也可以画椭圆。画扇形时只需要将椭圆的长短轴长度设为相同并给定扇形的圆心角即可。 # 参数 1.目标图片 2.椭圆圆心 3.长短轴长度 4.偏转角度 5.圆弧起始角度 6.终止角度 7.颜色 8.是否填充 cv2.ellipse(img_p, (500, 2…

[python] PyMouse、PyKeyboard用python操作鼠标和键盘

1、PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用。支持的平台及依赖如下: Linux - XlibMac - Quartz, AppKitWindows - pywin32, pyHook 支持python版本:我用的是3.6.7 2、安装 直接源码安装…

越南猫年来袭!2023Lazada年货节热销品趋势

距离2023年春节倒计时23天!大家是否对春节假期已经满怀期待了?越南人也和我们一样正期盼着新年到来,越南所有的传统节日都是按照农历来算的,其中春节也是越南重大的节日。春节将至,提前置办年货成了越南人和华人必不可…

MySQL 表的增删改查(进阶篇②)· 联合查询 内连接 外连接 · 自连接 · 子查询 exists · 合并查询 union

接进阶篇①,我们继续学习。 一、联合查询1.1 内连接1.2 外连接1.3 内连接和左右外连接的区别二、自连接三、子查询3.1 单行子查询3.2 多行子查询使用 in 范围匹配多行另一种写法 exists两种写法的区别3.3 在 from 子句中使用子查询四、合并查询unionunion all一、联…

随谈_前端与后端

文章目录一、前言二、前后端分别是什么?2.1. 前端(front end)2.2. 后端(back end)一、前言 最近在学习Vue,打算边学边用,开发一个网页系统。 Vue的话,网上介绍很多,简单…

容器安全的三大挑战

容器凭借其经济高效的优势改变了应用程序的交付方式,随着容器的普遍使用,管理应用程序基础设施的 IT 劳动力和资源也显著减少。然而,在保护容器和容器化生态系统时,软件团队遇到了许多障碍。尤其是习惯于更传统的网络安全流程和策…

MYSQL学习之路

MYSQL架构示意图 MYSQL8.0开始移除了查询缓存这个模块; 查询缓存:适合读多写少的任务; 建议:将 have_query_cache 设置为No,在需要使用查询缓存的语句上显式声明; select SQL_CACHE * from test;WAL(Write …

mysql sql优化、查看索引、创建索引

1.索引遵循原则 仅在被频繁检索的字段上创建索引。针对大数据量的表创建索引,而不是针对只有少量数据的表创建索引。通常来说,经常查询的记录数目少于表中总记录数据的 15% 时,可以创建索引。这个比例并不绝对,它与全表扫描速度成…

java:jackson 一:Jackson Annotation

java:jackson 一:Jackson Annotation 1 前言 参考文档地址: https://www.baeldung.com/jacksonhttps://www.baeldung.com/jackson-annotations2 使用 2.1 Jackson Serialization Annotations jackson 序列化注解 2.1.1 JsonAnyGetter T…

产业互联网是以大数据、云计算、AI等为代表的数字技术的出现为标志

事实上,以往,我们所经历的那个互联网玩家频出的年代,其实就是一个以互联网技术为主导的年代。在那样一个年代里,互联网技术几乎是解决一切痛点和难题的万能解药,几乎是破解一切行业痛点和难题的杀手锏。任何一个行业&a…

数据可视化③:大学生就业数据分析

大学生就业是和我们息息相关的话题,每一位大学生都关注着,我们常常在网络上看到有关大学生就业的话题,比如毕业季的一些讨论。在大一的创新创业课中,我们也了解到自己所学的专业和以后如何就业,往哪方面就业。但我们了…

深度学习目标检测_IOU、Precision、Recall、AP、mAP详解

文章目录背景IOU:Intersection Over Unionprecision(精度)和recall(召回率)TP、TN 、FP 、FNAP和mAP首先回顾两个概念PR曲线AP(Average Precision)mAP(mean Average Precision)背景 目标检测的任务是找出图…

[oeasy]python0035_ 整合shell编程_循环_延迟_清屏

整合shell编程 回忆上次内容 用\r 可以让输出位置回到行首原位刷新时间 如果想要的是大字符效果 需要使用 figlet但同时还希望能刷新这可能吗?🤔 建立脚本 我们得熟悉一下shell 先新建一个test.sh vi test.sh python3 show_time.py python3 show_time.…

如何通过GB35114国密标准接入到LiveGBS GB28181/GB35114监控平台

1.1 安装LiveGBS GB28181/GB35114视频平台 1.2 获取设备端证书给平台 我们用LiveNVR做为设备端向LiveGBS注册,这里先将LiveNVR的证书导出,并给LiveGBS端。 本地自签名证书是LiveNVR自己给自己签发的证书。如果需要用第三方机构的证书,可点击…

【软件测试】资深测试的总结,有限时间找最有价值bug......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试团队的新同事&a…

Mybatis进阶之自定义TypeHandler

实际应用开发中的难免会有一些需求要自定义一个TypeHandler ,比如这样一个需求:前端传来的性别是 男, 女,但是数据库定义的字段却是tinyint 类型( 1:男 2:女)。此时可以自定义一个年龄的类型处理器,进行转换…

Linux学习笔记——Linux实用操作(一)

04、Linux实用操作 4.1、各类小技巧(快捷键) 学习目标: 掌握各类实用小技巧 强制停止退出、登出历史命令搜索光标移动 1、Ctrlc强制停止 Linux某些程序的运行,如果想要强制停止它,可以使用快捷键Ctrlc 命令输入…

一个基于Vue+SpringBoot的个人博客项目,含数据库文件

blogSpringBoot 项目介绍 完整代码下载地址:一个基于VueSpringBoot的个人博客项目,含数据库文件 该项目是个人博客项目,采用Vue SpringBoot开发。 后台管理页面使用Vue编写,其他页面使用Thymeleaf模板。 项目演示地址&#…

什么是 MySQL 的“回表”?

1. 索引结构 要搞明白这个问题,需要大家首先明白 MySQL 中索引存储的数据结构。这个其实很多小伙伴可能也都听说过,BTree 嘛! BTree 是什么?那你得先明白什么是 B-Tree,来看如下一张图: 前面是 B-Tree&am…