vscode搭建PyQt + Quick开发环境

icon

VScode搭建PyQt + Quick开发环境


目录

  • 环境准备 🔔
  • 安装必要的Python包 🔔
    • 🔎 PyQt5和PySide2的区别
    • 💾 安装PyQt5
    • 💾 安装PySide2
  • 配置VScode 🔔
    • 💻 安装扩展
  • 代码示例 🔔
    • ✔ Python调用Qt库的示例
    • ✔ 编写Quick 界面
    • ✔ 程序界面
  • 发布 🔔
  • 支持 🔔


环境准备 🔔

  • 🔥 安装Python
  • 🔥 安装Visual Studio Code

安装必要的Python包 🔔

PyQt有两种库PyQt5PySide2

🔎 PyQt5和PySide2的区别

PyQt5PySide2都提供了Python对Qt库的绑定,选择PyQt5还是PySide2,主要取决于你的项目需求和许可要求。如果需要在闭源项目中使用,且不想购买商业许可证,PySide2可能是更好的选择。如果你希望获得更丰富的社区资源和教程,PyQt5则是不错的选择。

  1. 授权和许可 📄

    • PyQt5:采用GPL(GNU General Public License)或商业许可证。如果你的项目是闭源的,你需要购买商业许可证。
    • PySide2:由Qt公司(现已被The Qt Company维护)开发,采用LGPL(Lesser General Public License)或商业许可证。LGPL允许在闭源项目中使用,前提是遵守动态链接和库的修改发布要求。

  2. 开发者和支持 📄

    • PyQt5:由Riverbank Computing开发和维护,有长期的社区支持。
    • PySide2:由Qt公司开发和维护,随着Qt框架的更新得到官方支持。

  3. 命名空间和模块 📄

    • PyQt5:在导入模块时使用from PyQt5 import …
    • PySide2:在导入模块时使用from PySide2 import …,尽管接口和PyQt5非常相似,但有时需要注意命名空间的差异。

💾 安装PyQt5

需要使用pip安装PyQt5PyQt5-tool两个包

  • 📄 安装PyQt5

    pip install pyqt5
    

    如果下载异常或者下载过久,可以使用镜像安装:

    pip install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5
    
  • 📄 安装PyQt5-tool

    pip install pyqt5-tool
    

    如果下载异常或者下载过久,可以使用镜像安装:

    pip install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5-tool
    

💾 安装PySide2

pip install PySide2

如果下载异常或者下载过久,可以使用镜像安装:

pip install -i https://mirrors.aliyun.com/pypi/simple/ PySide2


配置VScode 🔔

💻 安装扩展

📄扩展📜作用
在vscode中使用Python开发必须下载的扩展:
  • 语法高亮
  • 代码补全
  • 格式化
  • 代码导航
  • 其他
允许你使用VSCode的调试功能来调试Python应用程序。
使用QWidget库进行开发的可安装,可以调用QtDesigner拖拽控件

代码示例 🔔

✔ Python调用Qt库的示例

main.py中编写python示例:

# main.py
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QTimer, QDateTime
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine, qmlRegisterTypeclass Backend(QObject):mySignal = pyqtSignal(str)def __init__(self, parent=None):QObject.__init__(self)self.timer = QTimer(self)self.timer.timeout.connect(lambda: self.mySignal.emit(QDateTime.currentDateTime().toString("yyyy-MM-dd hh:mm:ss")))self.timer.start(1000)@pyqtSlot(str)def onButtonClicked(self, text):print(text)if __name__ == "__main__":app = QGuiApplication([])engine = QQmlApplicationEngine()qmlRegisterType(Backend, "Backend", 1, 0, "Backend")engine.load("main.qml")app.exec_()

✔ 编写Quick 界面

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Window 2.2
import Backend 1.0Window {title: qsTr("Hulu PyQml Example")visible: truewidth: 300height: 100property Backend backend: Backend {}ColumnLayout {spacing: 10anchors.fill: parent        Text {Layout.alignment: Qt.AlignHCenterLayout.preferredWidth: 100Layout.preferredHeight: 30id: text}Button {id: buttonLayout.preferredWidth: 100Layout.preferredHeight: 30Layout.alignment: Qt.AlignHCentertext: "Click me"onClicked: {backend.onButtonClicked(button.text)}}}Connections {target: backendfunction onMySignal(str) {text.text = str}}
}

✔ 程序界面

在这里插入图片描述

示例工程源码下载:https://download.csdn.net/download/qq_41898196/89557468


发布 🔔

关于编译好程序之后进行打包发布,可以参考该文章《通过PyInstaller把Python文件打包成应用程序》


支持 🔔

如果你觉得这个文章有帮助,请给它一个 👍 和 ⭐!

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

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

相关文章

【Django】django自带后台管理系统样式错乱,uwsgi启动css格式消失的问题

正常情况: ERROR:(css、js文件加载失败) 问题:CSS加载的样式没有了,原因:使用了django自带的admin,在使用 python manage.py runserver启动 的时候,可以加载到admin的文…

如何学习Spark:糙快猛的大数据之旅

作为一名大数据开发者,我深知学习Spark的重要性。今天,我想和大家分享一下我的Spark学习心得,希望能够帮助到正在学习或准备学习Spark的朋友们。 目录 Spark是什么?学习Spark的"糙快猛"之道1. 不要追求完美,在实践中学习2. 利用大模型作为24小时助教3. 根据自己的节…

无人机的发展前景大吗?

随着科技的飞速发展,无人机(Unmanned Aerial Vehicle, UAV)作为一种新兴的航空器,已逐渐从军事领域渗透到民用领域。无人机的应用广泛,包括但不限于航拍、物流配送、环境监测、农业植保、应急救援等多个领域。本文旨在…

Chromium CI/CD 之Jenkins实用指南2024-在Windows节点上创建任务(九)

1. 引言 在现代软件开发流程中,持续集成(CI)和持续交付(CD)已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器,通过其强大的插件生态系统和灵活的配置选项&#xf…

十七、【机器学习】【非监督学习】- K-均值 (K-Means)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

静态代理与动态代理的区别与选择

在当今软件开发领域,代理模式作为一种重要的设计模式,广泛应用于增强现有对象功能、控制访问权限以及实现远程调用等场景。本文旨在深入探讨静态代理与动态代理之间的核心区别,帮助开发者理解两者在实现机制、灵活性、性能表现及适用场景上的…

Filebeat k8s 部署(Deployment)采集 PVC 日志发送至 Kafka——日志处理(二)

文章目录 前言Filebeat Configmap 配置Filebeat Deployment验证总结 前言 在上篇文章中总结了 Django 日志控制台输出、文件写入按天拆分文件,自定义 Filter 增加 trace_id 以及过滤——日志处理(一),将日志以 JSON 格式写入日志文件。我们的…

无人机侦察:二维机扫雷达探测设备技术详解

二维机扫雷达探测设备采用机械扫描方式,通过天线在水平方向和垂直方向上的转动,实现对目标空域的全方位扫描。雷达发射机发射电磁波信号,遇到目标后产生反射,反射信号被雷达接收机接收并处理,进而得到目标的位置、速度…

spring MVC 简单的案例(2)用户登录

一、用户登录 1&#xff09;前端代码 index.html <!doctype html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"content"widthdevice-width, user-scalableno, initial-scale1.0, maxim…

git commit报错: pre-commit hook failed (add --no-verify to bypass)

原因&#xff1a; 在提交前做代码风格检查&#xff0c;若检查不通过&#xff0c;则提交失败 解决方案&#xff1a;进入项目的.git>hooks目录&#xff0c;找到pre-commit文件&#xff0c;删除即可

单周期CPU设计(二)取指模块(minisys)(verilog)(vivado)

timescale 1ns / 1ps // module Ifetc32 (input reset, // 复位信号(高电平有效)input clock, // 时钟(23MHz)output [31:0] Instruction, // 输出指令到其他模块output [31:0] PC_plus_4_out, // (pc4)送执行单元input [31:0] Add_result, // 来自执行单元,算出…

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用

基于STC8H4K64TL单片机的触摸功能和数码管驱动功能实现一个触摸按键单击长按都增加数值另一个触摸按键单击长按都减少数值应用 STC8H4K64TL单片机介绍STC8H4K64TL单片机管脚图(48个引脚)STC8H4K64TL单片机串口仿真与串口通信STC8H4K64TL单片机管脚图(32个引脚)STC8H4K64TL单…

【学习css3】使用flex和grid实现等高元素布局

过往的实现方法是使用浮动加计算布局来实现&#xff0c;当flex和grid问世时&#xff0c;这一切将变得简单起来 一、简单的两列实现 1、先看页面效果 2、css代码 .container {padding: 10px;width: 100ch;margin: 0 auto;box-shadow: inset 0 0 0 2px #ccc;}.column {margin: 2…

[Redis]典型应用——分布式锁

什么是分布式锁&#xff1f; 在一个分布式系统中&#xff0c;也会涉及到多个节点访问同一个公共资源的情况。此时就需要通过锁来做互斥控制&#xff0c;避免出现类似于"线程安全"的问题 举个例子&#xff0c;在平时抢票时&#xff0c;多个用户可能会同时买票&#…

大语言模型-文本向量模型评估基准 MTEB

MTEB&#xff08;Massive Text Embedding Benchmark&#xff09; 涵盖112种语言的58个数据集&#xff0c;包含如下8种任务。 1、双语文本挖掘&#xff08;Bitext Mining&#xff09; 任务目标&#xff1a; 在双语语料库中识别语义等价的句子对。 任务描述&#xff1a; 输入…

Nature子刊 | ATAC-seq、RNA-seq和蛋白组联合分析揭示脂质激活转录因子PPARα在肾脏代偿性肥大的作用机制

2023年6月&#xff0c;美国国立心肺血液研究所的研究团队在Nature Communications上发表题为“Signaling mechanisms in renal compensatory hypertrophy revealed by multi-omics”的文章&#xff0c;该研究通过在单侧肾切除的小鼠模型中使用多组学方法&#xff08;蛋白质组学…

深入浅出WebRTC—NACK

WebRTC 中的 NACK&#xff08;Negative Acknowledgment&#xff09;机制是实时通信中处理网络丢包的关键组件。网络丢包是常见的现象&#xff0c;尤其是在无线网络或不稳定连接中。NACK 机制旨在通过请求重传丢失的数据包来减少这种影响&#xff0c;从而保持通信的连续性和质量…

Open3D 非线性最小二乘法拟合空间球

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键代码 2.1.1定义残差函数 2.1.2拟合球面 2.2完整代码 三、实现效果 3.1原始点云 3.2拟合后点云 3.3结果数据 前期试读&#xff0c;后续会将博客加入下列链接的专栏&#xff0c;欢迎订阅 Open3D点云算法与点…

spark 动态资源分配dynamicAllocation

动态资源分配&#xff0c;主要是spark在运行中可以相对合理的分配资源。 初始申请的资源远超实际需要&#xff0c;减少executor初始申请的资源比实际需要少很多&#xff0c;增多executorSpark运行多个job&#xff0c;这些job所需资源有的多有的少&#xff0c;动态调整executor…

Automation Anywhere推出新一代AI+自动化企业系统,助力企业实现10倍商业增长

RPA厂商纷纷进军AI Agent ( AI 代理)领域&#xff0c;陆续推出创新产品。最近&#xff0c;Automation Anywhere宣布推出其新的AI 自动化企业系统&#xff0c;该系统结合AI和自动化技术&#xff0c;以实现指数级的业务成果。 在Imagine 2024大会上首次亮相的这款新产品&#xf…