三、pycharm开发PyQt6 开发环境一键生成

news2024/12/23 19:40:19

一、环境

  • windows 10
  • Pycharm 社区版 - PyCharm 2022.1.3

二、设置模板

1、打开模板

File -> Settings… (ctrl + alt + s) -> Editor -> File and Code Templates

在这里插入图片描述
2、创建模板

  • 1)点击 Files

  • 2)点击 +
    在这里插入图片描述
    3、填写第一个脚本文件

  • Name : My PyQt6 env

  • Extention: bat

  • File name: pip_install

  • Content: pip install -r .\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

这里创建的是一个 .bat 文件,用于从清华的镜像下载安装 requirements.txt 中依赖的文件。
在这里插入图片描述

4、创建第一子模版

  • 点击 + 号后面第二个带文件背景的按钮,在My PyQt6 env 下创建第一个子模版
    在这里插入图片描述
    5、设置第一个子模版

这个子模版是一个markdown格式的文件,启用模板后续的步骤。只需要执行这两步,就完成了PyQt6 环境的搭建。

  • File name: README
  • Extension: md
  • Content:
#[[##]]# 执行两步,完成环境搭建:

#[[###]]# 1、进入终端 > Terminal
#[[###]]# 2、执行 > pip_install.bat

在这里插入图片描述
6、设置第二个子模版
还是和上面一样,点击选中 My PyQt6 evn ,这样子模版创建按钮才能可用。
创建一个新的子模版:

  • File name: ui/Main 这里创建了一个带目录的文件,目录名称为 ui, 文件名为 Main 。这个ui文件是用来保存通过 PQDesigner 创建和编辑的图形界面文件。
  • Extension: ui 这是Main文件的扩展名,Main.ui文件是PQDesigner可以打开的,下面会说如何打开这个文件。
  • Content: 这个内容是一个空的 PQDesigner 窗体文件。用 PQDesigner 打开,进行界面设计。
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget"/>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>800</width>
     <height>22</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

在这里插入图片描述
7、设置第三个子模版
还是和上面一样,点击选中 My PyQt6 evn ,这样子模版创建按钮才能可用。
创建一个新的子模版,这是 PyQt6 的依赖包。

  • File name: requirements
  • Extension: txt
  • Content:
PyQt6==6.4.2
pyqt6-tools>=6.4

在这里插入图片描述
8、设置第四个子模版

还是和上面一样,点击选中 My PyQt6 evn ,这样子模版创建按钮才能可用。
创建一个新的子模版,这是一个 mvc 的模板,通过这个模板,在图形化界面设置完成后,直接运行这个模板,即可实现程序的启动,完成代码与界面的分离。这段代码只能用于PyQt6,不能用于 PyQt5!
PyQt5的模板,请看这里 —》 https://teamlet.blog.csdn.net/article/details/106347682

  • File name: main/main 这里创建了一个main的目录和一个main.py的文件,这个文件是整个程序的启动入口
  • Extension: py
  • Content:
# -*- coding: utf-8 -*-
from PyQt6 import QtWidgets
import sys
from ui.ui_Main import Ui_MainWindow

class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    """
        初始化
    """
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        self.show() 

if __name__ == '__main__':  

    app = QtWidgets.QApplication(sys.argv) 
    window = MainWindow()  
    sys.exit(app.exec())  

在这里插入图片描述
9、这样就设置好了,使用方法

    1. 创建一个空的 python 项目
      在这里插入图片描述
    1. File -> New…
      在这里插入图片描述
  • 3)点击 MyPyQt6 env
    在这里插入图片描述

    1. 生成目录结构和文件
  • main 目录是代码根目录。

  • ui 目录是保存PyQt Designer 图形设计文件的地方。

  • main.py 是程序的入口。

  • requirements.txt 是 PyQt6的依赖文件。

  • pip_install.bat 是安装 requirements.txt 的脚本文件,通过清华的镜像源安装 PyQt6 依赖。

  • README.md 是一个说明文件。
    在这里插入图片描述

    1. 打开终端
      在这里插入图片描述
    1. 执行 pip_install.bat
  • 输入 pip ,然后按 Tab 键,会自动补全,如下图所示。
    在这里插入图片描述

  • 7) 环境设置完毕。
    在这里插入图片描述
    三、PyQt6 开发工具的设置

上面搭建完成了本地的PyQt6的运行环境,要实际开发还需要做一些工具关联性的设置。

  • 1、PyQt6 Designer 设置

  • 1) 打开 File -> Settings… (Ctrl + Alt + s) --> Tools --> External Tools
    在这里插入图片描述

  • 2)参数设定

  • Name: PyQt6 Designer 根据个人喜好设定,将显示在右键菜单中

  • Group: External Tools

  • Description: PyQt6 Designer

  • Program: $ProjectFileDir$\venv\Lib\site-packages\qt6_applications\Qt\bin\designer.exe

  • Arguments: $FilePath$

  • Working directory: $FileDir$

上面最后三个参数,要严格一致,不要填错!
在这里插入图片描述
2、PyQt6 uic 设置

再点击 + 号,增加一个工具 uic,用于将 图形化设计的文件转换为python代码的工具。

  • Name:Pyqt6 Uic
  • Group: External Tools
  • Program: $ProjectFileDir$\venv\Scripts\pyuic6.exe
  • Arguments:$FilePath$ -o $FileDir$\..\main\ui\ui_$FileNameWithoutAllExtensions$.py
  • Working directory:$ProjectFileDir$
    在这里插入图片描述
    3、以上工具,设置一次,永久有效。

但是,新项目中,必须在 pip_install.bat 执行成功后,工具才能使用。

在 Main.ui 上单击右键,菜单中 External Tools 中子菜单显示配置好的工具。
在这里插入图片描述
4、选中 PyQt6 Designer 会打开 PyQt6 Designer 进行图形化设计。

在这里插入图片描述

5、选中 PyQt6 Uic 之前,要将 main 设置为源代码根目录。

  • 1)选中 main 目录,点击右键–> Make Directory As --> Sources Root
    在这里插入图片描述

  • 2)在main文件夹下创建一个名字为 ui 的 Python Package 。

  • 在这里插入图片描述

  • 3 ) 选中 Main.ui 右键单击 --> External Tools --> PyQt6 Uic

在这里插入图片描述

  • 4)在 main/ui 目录下生成 ui_Main.py
    在这里插入图片描述
    *5)运行。
    右键单击 main.py
    在这里插入图片描述
    在这里插入图片描述
    这样就完整的搭建了一个开发 PyQt6的环境。
    每次打开 PyQt6 Designer 进行图形化开发后,都要运行一次 PyQt6 Uic 将图形化编辑的结果转换成Python代码,供 main.py 调用。

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

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

相关文章

ReentrantLock源码解析 | 京东云技术团队

并发指同一时间内进行了多个线程。并发问题是多个线程对同一资源进行操作时产生的问题。通过加锁可以解决并发问题&#xff0c;ReentrantLock是锁的一种。 1 ReentrantLock 1.1 定义 ReentrantLock是Lock接口的实现类&#xff0c;可以手动的对某一段进行加锁。ReentrantLock…

hadoop高校固定资产管理系统-计算机毕设 附源码74965

hadoop高校固定资产管理系统 摘 要 在信息飞速发展的今天&#xff0c;网络已成为人们重要的信息交流平台。高校部门每天都有大量的信息需要通过网络发布&#xff0c;为此&#xff0c;高校固定资产管理系统开发的必然性&#xff0c;所以本人开发了一个基于Tomcat&#xff08;服务…

SpringBoot整合Schedule详解和优化实战

文章目录 前言为什么选择Spring ScheduleCron表达式简单示例测试结果优化方案 前言 Spring Schedule是Spring框架提供的一种简单的定时任务解决方案。它是基于Java的Scheduled注解&#xff0c;可以让我们在不影响主线程的情况下&#xff0c;定时、周期性地执行任务。 为什么选…

vue+ant design vue实现搜索区域form

1.要实现的效果&#xff1a; form部分form-item自动铺开&#xff0c;间距适当&#xff0c;屏幕大小不同能根据屏幕大小变化。 2.vue组件中的代码示例 重点html代码&#xff1a; <!-- 搜索区域 --><div class"table-page-search-wrapper"><a-form la…

vue 七款低代码平台对比

vue 七款低代码平台对比 摘要平台表单设计form-generatorLowCodeEngine 可视化设计OpenDataVGoView 门户设计AgileBPM轻流云程低代码平台 摘要 调研低代码平台时看了很多网站&#xff0c;被我大概分为了三种&#xff1a;页面设计、可视化设计、门户设计&#xff0c;其中功能也…

【vue3中使用swiper组件】

【vue3中使用swiper组件】超详细保姆级教程 效果展示简介版本安装Swiper用法完整代码展示html静态展示js逻辑展示&#xff08;vue3 --- ts&#xff09;官方文档导入模块 css样式展示 &#xff08;自行更改所需&#xff09;官方文档样式 效果展示 简介版本 安装Swiper 项目终端中…

Observability:Synthetic monitoring - 合成监测入门

从我们的全球测试基础设施监控关键用户旅程&#xff0c;并了解网络和前端性能对用户体验的影响。 全面了解你的网站性能、功能和可用性&#xff08;从开发到生产&#xff09;&#xff0c;并在客户之前发现问题。合成监测&#xff08;synthetic monitoring&#xff09;使你能够模…

关于表单提交

一、表单实例 <!-- 把表单信息放入到表格当中&#xff0c;显示的内容更加整齐 --><form action"" method"get"><h1 align"center">用户注册</h1><input type"hidden" name"action" value"l…

正则表达式 - 语法 | 一看就懂!!!(二)

目录 一、正则表达式 - 语法 二、普通字符 三、非打印字符 四、特殊字符 五、限定符 &#xff08;一&#xff09;限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。 &#xff08;二&#xff09;正则表…

Eureka注册失败解决

根据查看网上资料发现是服务端自己自己注册了&#xff0c;所以需要自己关闭服务端注册 加上两行代码 fetch-registry: false register-with-eureka: false 即可注册成功

初级保育员专业知识生活管理考试题库及答案

​本题库是根据最新考试大纲要求&#xff0c;结合近年来考试真题的重难点进行汇编整理组成的全真模拟试题&#xff0c;考生们可以进行专项训练&#xff0c;查漏补缺巩固知识点。本题库对热点考题和重难点题目都进行了仔细的整理和编辑&#xff0c;相信考生在经过了针对性的刷题…

「深度学习之优化算法」(八)萤火虫算法

1. 萤火虫算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读) 萤火虫算法(Firefly Algorithm,FA)是一种模仿萤火虫之间信息交流,相互吸引集合,警戒危险。算法的原理简单,但实现过程较为复杂,而且算法的提出时间不长,算法的改进、优化处于初级阶段,国内外相应的…

大数据面试题-算法题

目录 1.时间复杂度、空间复杂度理解 2.常见算法求解思想 3.基本算法 3.1冒泡排序 3.2 快速排序 3.3 归并排序 3.4 遍历二叉树 3.5 二分查找 3.6 小青蛙跳台阶 3.7 最长回文子串 3.8 数字字符转化成IP 1.时间复杂度、空间复杂度理解 在计算机算法理论中&#xff0…

Nginx【Nginx核心指令(Gzip压缩指令)、Nginx场景实践(浏览器缓存、防盗链)】(七)-全面详解(学习总结---从入门到深化)

目录 Nginx核心指令_Gzip压缩指令 Nginx场景实践_浏览器缓存 Nginx场景实践_防盗链 Nginx核心指令_Gzip压缩指令 Nginx开启Gzip压缩功能&#xff0c; 可以使网站的css、js 、xml、html 文件 在传输时进行压缩&#xff0c;提高访问速度, 进而优化Nginx性能! Gzip压缩作用 将…

使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,吐血整理......)

使用OpenCV工具包实现人脸检测与人脸识别&#xff08;吐血整理&#xff01;&#xff09; OpenCV实现人脸检测OpenCV人脸检测方法基于Haar特征的人脸检测Haar级联检测器预训练模型下载Haar 级联分类器OpenCV-Python实现 基于深度学习的人脸检测传统视觉方法与深度学习方法对比 O…

爱不释手的六款IDEA神仙插件,开发效率翻倍!

一、前言 作为一名开发人员&#xff0c;在众多的 IDE 中&#xff0c;IntelliJ IDEA 无疑是最受欢迎和强大的选择。 除了其本身的功能外&#xff0c;IntelliJ IDEA 还支持各种强大的插件&#xff0c;这些插件可以进一步增强开发体验和效率。 这些插件就像是一些神奇的存在&…

uni-app如何生成海报图片

项目场景&#xff1a; 在uni-app中&#xff0c;通过点击邀请分享海报的方式&#xff0c;可以展示不同的海报&#xff0c;并通过扫描海报上的二维码来实现用户之间的关系绑定&#xff0c;从而实现分销功能&#xff1b;每次生成的海报样式都可能不同&#xff0c;可以根据后台配置…

Java实现PDF转Word【收集整理】

首先感谢 Mgg9702 博主提供的转换依赖包处理&#xff0c;关于如何获得一个破解的pdf转word我这里就不追述了&#xff0c;有需要去看&#xff1a; https://blog.csdn.net/Mgg9702/article/details/124987483?spm1001.2014.3001.5506 我这里主要涉及到整理一个pdf转word的jar工…

Spring Boot原理分析 | SpringApplication、Yaml、Properties

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Spring Boot Spring开源框架&#xff0c;轻量级的Java开发框架&#xff0c;解决企业级应用开发的复杂性而创建&#xff0c;简化开发 基于POJO的轻量级和最小侵入型编程…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(6月 30 日论文合集)

文章目录 一、分割|语义相关(8篇)1.1 MIS-FM: 3D Medical Image Segmentation using Foundation Models Pretrained on a Large-Scale Unannotated Dataset1.2 KITE: Keypoint-Conditioned Policies for Semantic Manipulation1.3 SeMLaPS: Real-time Semantic Mapping with La…