初识PySide6/PyQt6:基础简介及环境的安装配置与使用(一)

2024-03-29 12:36

本文主要是介绍初识PySide6/PyQt6:基础简介及环境的安装配置与使用(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、基础简介
  • 二、PySide 6/PyQt 6具有的特性
  • 三、PySide 6/PyQt 6之间的区别
  • 四、搭建PyQt 6 环境
    • 4.1 安装PyQt6
    • 4.2 测试PyQt6环境
    • 4.3 pycharm 配置Qt Designer、PyUIC
  • 五、Qt Designer使用(基础开发流程实操)
  • 六、官方文档

在这里插入图片描述

一、基础简介

PySide / PyQt是C++的程序开发框架QT的Python实现。

在介绍PyQt框架之前,先介绍下什么是QT、GUI?

Qt 是跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正的组件编程。

GUI 是图形用户界面(Graphical User Interface)的简称,是指采用图形方式显示的计算机操作用户界面。

在Python中经常使用的GUI控件集有PyQt、Tkinter(ttkbootstrap)、wxPython、Kivy、PyGUI和Libavg,其中PyQt是Qt官方专门为Python提供的GUI扩展。

开源软件需要解决的最大问题是如何处理开发人员使用开源软件来完成个人或商业目标,其中包括版权收益问题。PyQt 6 选择了GPL(自由软件协议),开发人员可以放心使用PyQt 6 开发软件。

二、PySide 6/PyQt 6具有的特性

  • 能跨平台运行在Windows、Linux和macOS等平台上。
  • 对QT库进行完全封装,基于高性能的Qt的GUI控件集。
  • 使用信号/槽机制进行通信。
  • 提供了一整套种类繁多的窗口控件。
  • 可以使用Qt成熟的IDE(如 Qt Designer)进行图形界面设计,并自动生成可执行的Python代码。
  • 底层是Qt的dll文件,基于C++运行,所以运行效率上得到了一定的保证。

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

三、PySide 6/PyQt 6之间的区别

  PySide 6/PyQt 6 都基于Qt6,他们之间的代码基本没有区别,其它方面有两个最重要的区别,掌握这两个区别可以帮助开发人员解决PySide 6/PyQt 6之间约95%的兼容性问题。

一是信号与槽的命名
PySide 6/PyQt 6关于信号与槽的命名不同,使用下面的方法可以统一起来:

from PySide6.QtCore import Signal, Slot
from PyQt6.QtCore import pyqtSignal as Signal, pyqtSlot as Slot

二是关于枚举的问题
PySide 6 为枚举的选项提供了快捷方式,比如Qt.DayOfWeek枚举星期一到星期日,在 PySide 6中星期三可以直接用快捷方式Qt.Wednesday表示,而PyQt 6 需要完整的使用Qt.DayOfWeek.Wednesday表示。解决这个问题最简单的方法是从Qt官方帮助文档中查询枚举的完整路径,另一个方法是使用qtpy模块,使用qtpy模块可以把PySide和PyQt统一起来,直接使用快捷方式。

通过以下方式:pip install qtpy

from qtpy.QtCore import Qt

四、搭建PyQt 6 环境

  使用pyqt6+pycharm

4.1 安装PyQt6

pip install pyqt6

在这里插入图片描述

4.2 测试PyQt6环境

安装完后对环境进行测试,以下是个testFirst.py的测试脚本:

import sys
from PyQt6 import QtWidgetsapp = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget()
widget.resize(300, 200)
widget.setWindowTitle("Hello, Elaine")
widget.show()
sys.exit(app.exec())

在pycharm中运行,或者在Windows命令行窗口中运行如下命令:python testFirst.py

如果没有报错,弹出以下窗口,说明PyQt6环境安装成功。

在这里插入图片描述

4.3 pycharm 配置Qt Designer、PyUIC

- Qt Designer 是个强大、灵活的可视化GUI设计工具,使用简单,通过拖拽和单击就可以完成复杂的界面设计,并可随时预览效果图,生成的UI界面是个后缀为 .ui 的文件。

- PyUIC 的作用是把上述 .ui 的文件转换成 .py 文件。

首先安装pyqt6-tools工具,命令:

pip install pyqt6-tools

在这里插入图片描述

配置到pycharm:

  1. 打开pycharm,在 " File —> Settings "
    在这里插入图片描述
  2. " Settings—> Tools —> External Tools " 中点击 + 号,添加外部工具。
  3. 添加 Qt Designer

配置以下信息:

Name: "QT Designer",这个名字可以随意填
Group: "PyQt6"
Program: "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\Scripts\pyqt6-tools.exe" (自己安装的python路径)
Arguments: "designer"
Working directory: $FileDir$ 

在这里插入图片描述

  1. 添加 PyUIC

配置以下信息:

Name: "PyUIC",这个名字可以随意填
Group: "PyQt6"
Program: "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\Scripts\pyuic6.exe" (自己安装的python路径)
Arguments: "$FileName$ -o $FileNameWithoutExtension$.py"
Working directory: $FileDir$ 

在这里插入图片描述

  1. 检查是否设置成功(Tools里会新增PyQt6工具)

在这里插入图片描述

五、Qt Designer使用(基础开发流程实操)

  1. 点击运行QT Designer进入界面
    在这里插入图片描述

  2. Main Window 点击创建
    在这里插入图片描述

  3. 随意拖拽几个控件进去,保存窗体,我这里保存为MainWin.ui文件
    在这里插入图片描述

  4. 保存后关闭界面可以看到文件夹中多出了刚保存的文件(MainWin.ui)
    在这里插入图片描述

  5. 这个时候需要将 .ui 文件转换为 .py 文件,使用 PyUIC 即可
    在这里插入图片描述
    如果执行后有DeprecationWarning的警告信息,可以使用包管理工具如pip进行更新:pip install --upgrade PyQt6(多执行几次,后面就没报了)

  6. 执行后文件夹里会生成一个MainWin.py文件,如下:
    在这里插入图片描述

  7. 界面与逻辑分离
    界面文件: .py 文件是由 .ui 文件编译而来,所以当 .ui 文件发生变化时,对应的 .py 文件也会发生变化,将这种由 .ui 文件编译而来的 .py 文件称之为界面文件。
    逻辑文件:由于界面文件每次编译都会初始化,因此需要新建一个 .py 文件调用界面文件,这个新建的文件可以称之为逻辑文件。
    如果以后想要更新界面,只需要对 .ui 文件进行更新再编译成对应的 .py 文件即可,不需要再去动逻辑文件。

逻辑文件 “MainWinRun.py” 代码如下:

# -*- coding: utf-8 -*-import sys
from PyQt6.QtWidgets import QApplication, QMainWindow
from MainWin import *class MyMainWindow(QMainWindow, Ui_MainWindow):def __init__(self, parent=None):super(MyMainWindow, self).__init__(parent)self.setupUi(self)if __name__ == "__main__":app = QApplication(sys.argv)my_win = MyMainWindow()my_win.show()sys.exit(app.exec())

在这里插入图片描述

  1. 运行结果
    在这里插入图片描述

六、官方文档

  • QT官方文档:https://doc.qt.io/
  • Qt for Python: https://doc.qt.io/qtforpython-6/contents.html

后续大家就可以自己写功能DIY界面了~

在这里插入图片描述

这篇关于初识PySide6/PyQt6:基础简介及环境的安装配置与使用(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/858610

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详