Python开发GUI常用库PyQt6和PySide6介绍之一:概述

Python开发GUI常用库PyQt6和PySide6介绍之一:概述

Python开发GUI有许多选择,下面是常见的选择:

Tkinter:Tkinter是Python标准库中的一个GUI工具包,易于学习和使用。它提供了丰富的组件和布局选项,适用于简单的GUI应用程序。Tkinter的优点是它与Python的集成非常紧密,不需要额外的安装。然而,它在外观和功能方面可能相对较简单,并且缺乏一些现代GUI框架的高级功能。

基于tkinter的GUI编程,在以前文章中已介绍比较多:

Python 的Tkinter包系列之一:窗口初步 https://blog.csdn.net/cnds123/article/details/127227651

Python 的Tkinter包系列之二:菜单  https://blog.csdn.net/cnds123/article/details/127319885

Python 的Tkinter包系列之三:Canvas(画布)https://blog.csdn.net/cnds123/article/details/127344534

Python 的Tkinter包系列之四:对话框 https://blog.csdn.net/cnds123/article/details/127392512

Python 的Tkinter包系列之五:事件  https://blog.csdn.net/cnds123/article/details/127411016

python 的Tkinter包系列之六:好例子  https://blog.csdn.net/cnds123/article/details/127487982

在此就不多说了。

PyQt:PyQt是一个功能强大且成熟的GUI框架,基于Qt库。它提供了丰富的组件、布局和主题选项,以及强大的功能和灵活性。PyQt的优点是它具有现代化的外观和丰富的功能,适用于复杂的GUI应用程序。然而,由于PyQt的许可证问题,您需要确保在使用之前了解和遵守相关的许可条款。

PySide6:PySide6是Qt的另一个Python绑定,与PyQt类似,但使用了更宽松的许可证(LGPL)。它提供了与PyQt相似的功能和API,因此如果您熟悉PyQt,可以很容易地切换到PySide6。与PyQt相比,PySide6的社区支持可能相对较少,但它仍然是一个可行的选择。

PyQt6和PySide6都是用于创建基于Qt框架的Python图形用户界面(GUI)应用程序的工具包。它们提供了访问Qt功能和组件的接口,使开发者能够使用Python语言轻松创建跨平台的GUI应用程序。PyQt6是由Riverbank Computing开发和维护的,而PySide6是由Qt公司开发和维护的。

PyQt6提供两种许可证:一种是商业许可证,如果你想在你的应用程序中使用PyQt6而不公开源代码,你需要购买这种许可证。另一种是GNU通用公共许可证(GPL,General Public License),如果你的应用程序也是开源并且遵循GPL许可证,你可以免费使用PyQt6。

PySide6则是基于LGPL(Lesser General Public License)许可证,这意味着你可以在你的应用程序中免费使用PySide6,它不要求你的应用程序必须开源。但是,如果你修改了PySide6的源代码,那么根据LGPL的要求,你必须将这些修改公开。

如果您对GUI开发有较少经验或需要一个简单的界面,Tkinter可能是一个不错的选择。如果您需要更复杂的功能和现代化的外观,PyQt和PySide6都是不错的选择,但您需要对许可证问题进行评估和决策。

由于历史原因,PyQt和PySide在某些情况下具有不同的API和用法。虽然它们都可以用于创建Qt应用程序,但在具体的代码编写和使用上可能会有一些差异。以下是一些可能的差异:

☆模块导入:在导入PyQt和PySide模块时,存在差异。在PyQt中,通常使用import PyQt6.QtCore、import PyQt6.QtGui等方式导入模块。而在PySide中,通常使用import PySide6.QtCore、import PySide6.QtGui等方式导入模块。

☆类和函数名称:在某些情况下,PyQt和PySide使用不同的类和函数名称。例如,在处理事件循环时,PyQt使用QCoreApplication类,而PySide使用QtCore.QCoreApplication类。这种差异可能需要在代码中进行适当的调整。

☆信号与槽机制:PyQt和PySide在信号与槽机制方面存在一些差异。尽管它们都使用信号和槽来处理对象之间的通信,但在具体的语法和用法上可能会有一些不同。有些代码可能需要在从PyQt迁移到PySide时进行修改。“信号和槽”是Qt框架中一种用于实现对象间通信的机制,用于处理GUI事件、线程间通信、网络通信等各种场景。

☆底层细节:由于PyQt和PySide是由不同的团队开发和维护的,它们在底层实现和内部细节上可能存在差异。这些差异可能在一些高级使用场景或特定功能的使用中显现出来。

尽管存在一些差异,但PyQt和PySide都遵循Qt框架的设计原则和API约定,因此在大多数情况下,它们的代码是相似的。对于大多数Qt应用程序开发者来说,这些差异不会对使用体验产生重大影响,而且通常可以通过简单的修改来处理。

在选择使用PyQt还是PySide时,您可以考虑许可证要求、文档和社区支持等因素,以及个人和团队的偏好。在迁移或切换工具包时,建议查阅相关的文档和资源,以了解具体的差异和迁移指南。

Windows10中PySide6的安装使用

PySide6是Python的一个用于创建桌面应用程序的库,基于Qt6框架。它提供了对Qt Widgets、Qt GUI和Qt Core功能的访问,使开发人员可以使用Python来构建具有图形用户界面(GUI)的应用程序。PySide6具有以下特点:

☆易学易用:PySide6使用与Python相同的语法和编码风格,使得开发人员可以快速上手并开始创建GUI应用程序。

☆强大的功能:PySide6提供了丰富UI控件,包括按钮、文本框、列表框、对话框、绘图、动画等,可以满足各种应用程序的需求。

☆跨平台:基于Qt6框架,PySide6支持多种操作系统,如Windows、macOS、Linux等,使得开发的应用程序可以在多个平台上运行。

☆可视化设计工具:PySide6提供了Qt Designer,这是一个可视化的界面设计工具。安装了PySide6,就已经安装了Qt Designer。你可以使用它来创建和布局应用程序的界面,然后将设计好的界面文件与PySide6代码相结合。

要开始使用PySide6,首先需要安装库。可以使用pip来安装。PySide6安装,在cmd中输入命令如下回车:

pip install PySide6

我的电脑中,安装有了多个Python版本,需要指定版本号安装,

具体可参见Python第三方模块(库、包)安装、卸载与查看及常见问题解决(修订)-CSDN博客

我这里用:py -3.10 -m pip install PySide6

在Python 的IDEL Shell中用import PySide6 回车,如果没有出现红字就说明安装成功。

以下是一个简单的PySide6应用程序示例:

import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox# 创建应用程序对象
app = QApplication(sys.argv)# 创建主窗口
window = QMainWindow()
window.setGeometry(300, 300, 400, 300)
window.setWindowTitle("PySide6 应用程序示例") # 设置窗口标题# 创建按钮
button = QPushButton("Click me!", window)
button.setGeometry(50, 50, 100, 30)  # 设置按钮的位置和大小# 按钮点击事件的处理函数
def on_button_clicked():message_box = QMessageBox()message_box.setText("Hello, PySide6!") # 创建一个消息框并显示消息message_box.exec()# 将按钮点击事件与处理函数关联
button.clicked.connect(on_button_clicked)# 显示窗口
window.show()# 运行应用程序的事件循环
sys.exit(app.exec())

运行效果如下图:

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

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

相关文章

企业办公加密系统中——全透明加密和半透明加密的区别

PC端访问地址: www.drhchina.com 天锐绿盾数据防泄密系统中的全透明加密和半透明加密的区别如下: 全透明加密是采用驱动层动态加解密技术,对企业内部所有涉密文档进行强制加密处理,从文件创建开始即可自动加密保护。加密文档在加…

STM32 CAN多节点组网项目实操 挖坑与填坑记录2

系列文章,持续探索CAN多节点通讯, 上一篇文章链接: STM32 CAN多节点组网项目实操 挖坑与填坑记录-CSDN博客文章浏览阅读120次。CAN线性组网项目开发过程中遇到的数据丢包问题,并尝试解决的记录和推测分析。开发了一个多节点线性…

实战 | OpenCV传统方法实现密集圆形分割与计数(详细步骤 + y源码)

导 读 本文主要介绍基于OpenCV传统方法实现密集圆形分割与计数应用,并给详细步骤和代码。 背景介绍 实例图片来源于网络,目标是分割下图中圆形目标并计数。 本文实现效果如下: 实现步骤 【1】灰度转换 + 均值滤波 + 二值化,得到参考背景 img = cv2.imread(src.jpg)c…

基于深度学习的人脸测距&社交距离过近警报系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 近年来,随着深度学习技术的快速发展,人脸识别技术在各个领域得到了广泛应用。其中,人脸测距和社交距离过近警报系统成为了人们…

两个月准备信息系统项目管理师来得及吗?

可以尝试加快进度!但是时间稍微有些紧迫。当然备考时间也不宜过长,2-3个月时间完全足够。对于没有项目经验的初学者考生们,建议提前做好准备,特别要注意时间安排~ 在备考期间,不要受到外界负面言论的影响,比…

Mysql数据库的基础知识和yum安装步骤

MySQL数据库介绍 什么是数据库DB? DB的全称是database,即数据库的意思。数据库实际上就是一个文件集合,是一个存储数据的仓库,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作&#xff1…

[C++] 多态(下) -- 多态原理 -- 动静态绑定

文章目录 1、多态原理2、动态绑定和静态绑定3、单继承和多继承关系的虚函数表3.1 单继承中的虚函数表5.2 多继承中的虚函数表 上一篇文章我们了解了虚函数表,虚函数表指针,本篇文章我们来了解多态的底层原理,更好的理解多态的机制。 [C] 多态…

数据分析场景下,企业大模型选型的思路与建议

来源/作者:爱分析 随着大模型带来能力突破,让AI与数据分析相互结合,使分析结果更好支撑业务,促进企业内部数据价值释放,成为了当下企业用户尤为关注的话题。本次分享主要围绕数据分析场景下大模型底座的选型思路&#…

opencv 入门一(显示一张图片)

头文件添加如下&#xff1a; 库目录添加如下&#xff1a; 依赖的库如下&#xff1a; #include <iostream> #include "opencv2/opencv.hpp" int main(int argc,char ** argv) { cv::Mat img cv::imread(argv[1], -1); if (img.empty()) return -1; …

sourcetree 无效的源路径 细节提示:系统找不到指定的文件

工具–>选项–>git 直接下拉到底 点击红框&#xff0c;重新下载一个内嵌git就可以了 我感觉是因为改变了原有git安装路径的问题

MFC 窗口创建过程与消息处理

目录 钩子简介 代码编写 窗口创建过程分析 消息处理 钩子简介 介绍几个钩子函数&#xff0c;因为它们与窗口创建工程有关 安装钩子函数 HHOOK SetWindowsHookExA([in] int idHook,[in] HOOKPROC lpfn,[in] HINSTANCE hmod,[in] DWORD dwThreadId ); 参数说明…

深度学习笔记_7经典网络模型LSTM解决FashionMNIST分类问题

1、 调用模型库&#xff0c;定义参数&#xff0c;做数据预处理 import numpy as np import torch from torchvision.datasets import FashionMNIST import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.nn.functional as F im…

是什么导致了我孩子的听力损失?

是什么导致了我孩子的听力损失&#xff1f; 有些婴儿天生就有听力损失&#xff0c;这被称为先天性听力损失。许多不同的因素都可能导致这种类型的听力损失&#xff0c;但并不总是能够确定确切的原因。在大约一半的病例中&#xff0c;原因是遗传的&#xff0c;也就是说&#xff…

深度学习 tensorflow基础介绍

深度学习是一种基于人工神经网络的机器学习方法&#xff0c;其目标是通过模仿人脑的结构和功能&#xff0c;实现对大量复杂数据的学习和理解。它可以在图像识别、语音识别、自然语言处理等领域取得惊人的成就。 深度学习的引入引出了TensorFlow&#xff0c;它是一个由Google Br…

DBeaver Ultimate for Mac/win:掌握数据库的终极利器,助您高效管理数据!

在当今数字化时代&#xff0c;数据管理变得越来越重要。而作为一款功能强大的数据库管理工具&#xff0c;DBeaver Ultimate&#xff08;简称DBU&#xff09;助您轻松应对各种复杂的数据管理任务。无论您是数据库管理员、开发人员还是数据分析师&#xff0c;DBU都能为您提供全面…

带你学C语言~指针(2)

目录 &#x1f3c9;前言 &#x1f680; 数组名的理解 &#x1f680;使用指针访问数组 ✈一维数组传参的本质 ✈冒泡排序 &#x1f3c6;二级指针 &#x1f3c6;指针数组 &#x1f3c6;指针数组模拟二维数组 &#x1f389;结束语 &#x1f3c9;前言 上一章&#xff0c;小…

关于“Python”的核心知识点整理大全28

目录 11.1.5 添加新测试 11.2 测试类 11.2.1 各种断言方法 unittestModule中的断言方法&#xff1a; ​编辑11.2.2 一个要测试的类 survey.py language_survey.py 11.2.3 测试 AnonymousSurvey 类 test_survey.py 往期快速传送门&#x1f446;&#xff08;在文章最后&…

计算机操作系统-第十九天

目录 调度器/调度程序 闲逛进程 调度器/调度程序 ②、③由调度程序引起&#xff0c;调度程序决定了&#xff1a;让谁运行&#xff08;调度算法&#xff09;运行多长时间&#xff08;时间片大小&#xff09; 调度时机&#xff08;什么事件会触发”调度程序“&#xff09;&…

proxysql读写分离组件部署

一、前言 在mysql一主两从架构的前提下&#xff0c;引入读写分离组件&#xff0c;可以极大的提高mysql性能&#xff0c;proxysql可以在高可用mysql架构发生主从故障时&#xff0c;进行自动的主从读写节点切换&#xff0c;即当mysql其他从节点当选新的主节点时&#xff0c;proxy…

HuatuoGPT

文章目录 HuatuoGPT 模型介绍LLM4Med&#xff08;医疗大模型&#xff09;的作用ChatGPT 存在的问题HuatuoGPT的特点ChatGPT 与真实医生的区别解决方案用于SFT阶段的混合数据基于AI反馈的RL 评估单轮问答多轮问答人工评估 HuatuoGPT 模型介绍 HuatuoGPT&#xff08;华佗GPT&…