python-在PyCharm中使用PyQt5

news2024/11/24 12:03:24

文章目录

    • 1. 安装 PyQt5 和QtTools
    • 2. QtDesigner 和 PyUIC 的环境配置
      • 2.1 在 PyCharm 添加 Create Tools
      • 2.2 添加 PyUIC 工具
    • 3. 创建ui界面
    • 4. 使用python调用ui界面
    • 参考文献

1. 安装 PyQt5 和QtTools

QT 是最强大的 GUI 库之一,PyQt5 是 Python 绑定 QT5 应用的框架,具有简单好用,功能强大, 跨平台支持,文档齐全,稳定性高,生态支持,开源免费的优点。

Qt Designer 通过人机交互的排版方式进行界面设计,非常方便、直观。

pip 安装 PyQt5:

pip install pyqt5 -i https://mirrors.aliuyun.com/pypi/simple

pip 安装 QtTools:

Qt Tools 包含:图形界面设计工具 Qt Designer,用于设计图形界面,生成 .ui文件,以 xml 格式存储界面和控件的属性;UI 文件转换工具 PyUic,用于将 .ui 文件解析为 .py 文件的工具。

Qt Tools 可以使用 pip 方式安装:

pip install pyqt5-tools  -i https://mirrors.aliuyun.com/pypi/simple

2. QtDesigner 和 PyUIC 的环境配置

使用 PyCharm 集成开发工具的小白,在安装 QtTools 库以后,还要对 QtDesigner 和 PyUIC 进行环境配置,将其集成到 PyCharm 中。(不是必要的,这个操作只是为了方便打开qt designer和将ui文件转换为py文件)

2.1 在 PyCharm 添加 Create Tools

从顶部菜单栏选择:File -> Settings,弹出 Seetings 窗口;
从左侧菜单栏中选择:Tools -> ExternalTools,在右侧点击 “+” 弹出 CreateTool 窗口;
在 CreateTool 窗口依次填写:
Name:填写 “QtDesigner”
Program:填写 designer.exe 的路径

注意:此处填写刚才 pip 安装的 pyqt5-tools 工具包的路径。如果小白的 Python 或 Anaconda3安装在其他路径下,则从对应的目录找到 “qt5_applications\Qt\bin\designer.exe”,或者在资源管理器中搜索 “designer.exe” 文件找到安装路径。

Arguments:不用填写
Working directory:填写生成 UI 文件的保存路径

例如,要将 .ui 文件保存在当前 Project 的路径下,则填写 “$ProjectFileDir$ ”;要将 .ui 文件保存在当前 Project 路径下的 \ui_program 子目录中,则填写 “$ProjectFileDir$\ui_program”。
填好 CreateTool 窗口后,点击 “OK” 即可完成 QtDesigner 工具的添加。
在这里插入图片描述

2.2 添加 PyUIC 工具

在 CreateTool 窗口依次填写:

Name:填写 “PyUIC”
Program:填写 python.exe 的路径

注意:此处填写 IDE 使用的 Python Interpreter的路径。如果 Python 或 Anaconda3安装在其他路径下,或者选择其它路径中的 python.exe 作为 Python Interpreter,可以从 Pycharm ->Settings -> Project -> Python Interpreter 打开配置窗口,从右侧上方 “PythonInterpreter:” 选项框找到 python.exe 的路径。

Arguments:填写"-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py”
Working directory:填写将 .ui 文件转换为 .py 文件的保存路径

例如,要将 .py 文件保存在当前 Project 的路径下,则填写 “$ProjectFileDir$”;要将 .py 文件保存在当前 Project 路径下的 \ui_program 子目录中,则填写 “$ProjectFileDir$\ui_program”。
填好 CreateTool 窗口后,点击 “OK” 即可完成 QtDesigner 工具的添加。
在这里插入图片描述
至此,安装和环境配置完成。

3. 创建ui界面

在pycharm菜单栏中选择Tools,找到QtDesigner,打开Q他Designer界面进行ui的设计。
在这里插入图片描述

通过拖拉控件的方式进行布局:

在这里插入图片描述
设计完成后保存ui
在这里插入图片描述
通过PyUI将test.ui转换为test.py

4. 使用python调用ui界面

在main函数中写自己的MyMainWindow类,继承QMainWindow 类和 Ui_MainWindow 界面类,然后就可以实现自己所需要的功能了。

import sys
from PyQt5.QtWidgets import *
from test import Ui_MainWindow  # 导入 test.py 中的 Ui_MainWindow 界面类


class MyMainWindow(QMainWindow, Ui_MainWindow):  # 继承 QMainWindow 类和 Ui_MainWindow 界面类
    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)  # 初始化父类
        self.setupUi(self)  # 继承 Ui_MainWindow 界面类
        self.textEdit.append("test")


if __name__ == '__main__':
    app = QApplication(sys.argv)  # 在 QApplication 方法中使用,创建应用程序对象
    myWin = MyMainWindow()  # 实例化 MyMainWindow 类,创建主窗口
    myWin.show()  # 在桌面显示控件 myWin
    sys.exit(app.exec_())  # 结束进程,退出程序

在这里插入图片描述

参考文献

Python——PyQt5在PyCharm的配置与应用(保姆级教程)
Python 小白从零开始 PyQt5 项目实战(8)汇总篇(完整例程)
OpenCV-PyQT项目实战(1)安装与环境配置

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

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

相关文章

phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)

报错提示: 解决方法:官网下载phpmyadmin 5.2.1版本。 下载地址:phpMyAdmin 将网站根目录phpMyAdmin4.8.5里面的文件换成 官网下载的5.2.1版本即可。 重启网站,打开phpMyAdmin后台即可(若打不开更改 mysql密码即可&am…

传知代码-KAN卷积:医学图像分割新前沿

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 概述 在本文中深入探讨KAN卷积在医学图像分割领域的创新应用,特别是通过引入Tokenized KAN Block(Tok Kan)这一突破性设计,将深度学习中的图像分割技术推向了新的高…

代理导致的git错误

问题: 今天在clone时出现如下错误: fatal: unable to access https://github.com/NirDiamant/RAG_Techniques.git/: Failed to connect to 127.0.0.1 port 10089 after 2065 ms: Couldnt connect to server真是让人感到奇怪!就在前天&#…

Typora安装,使用,图片加载全流程

文章目录 前言:安装:破解:使用typora:关于CSDN加载不出图片:创建OSS:设置PicGo: 前言: ​ Typora是一款非常流行的Markdown编辑器,简单来说就是可以方便我们写博客。拿我…

Linux基础---07文件传输及解决yum安装失效的方法

Linux文件传输地图如下,先选取你所需的场景,若你是需要Linux和Linux之间传输文件就查看SCP工具即可。 一.下载网站文件 前提是有网: 检查网络是否畅通命令:ping www.baidu.com,若有持续的返回值就说明网络畅通。Ctr…

如何建立一个Webservice WSDL的简单例子(完整例子)

一:根据对方给的wsdl 的接口地址创建Web 的逻辑端口 1:例如这个用C#写的Web 2.我们需要在SAP里建立一个Service Consumers 的服务记得后缀要加?wsdl 2:然后就会生成对应方法的出参 入参 返回的消息根据接口方法来判断 二:如何通…

day21JS-axios数据通信

1. 什么是axios axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,简单的理解就是ajax的封装,只不过它是Promise的实现版本。 特性: 从浏览器中创建 XMLHttpRequests从 node.js 创建 http 请求支持 Promise API拦截请求和响应转…

基于Java的固定资产管理系统

基于Java的固定资产管理系统是一个实用的应用程序,用于跟踪和管理公司的资产。这种系统可以包括资产的采购日期、位置、状态、折旧等信息。下面是一个简单的固定资产管理系统的设计概述,以及一些关键功能模块的实现思路。 系统设计概览 用户管理&…

2-97 基于matlab的小波变换模量最大值 (WTMM) 方法进行图像边缘检测

基于matlab的小波变换模量最大值 (WTMM) 方法进行图像边缘检测。利用小波基函数的局部化和振荡特性来检测图像中的边缘,沿每个像素的梯度方向搜索局部最大值,保留局部最大值,抑制其他系数,实现边缘检测。程…

一文入门生成式AI(理解ChatGPT的原理)

一、什么是生成式AI? 以ChatGPT为代表的生成式AI,是对已有的数据和知识进行向量化的归纳,总结出数据的联合概率。从而在生成内容时,根据用户需求,结合关联字词的概率,生成新的内容。 可以这么联想&#x…

(9) protobuf 与cmake

文章目录 概要整体架构流程代码优化 概要 protobuf的安装与用cmake编译protobuf程序 整体架构流程 安装protobuf3 21.12,最新版本好像要用到一个新的库,有点麻烦。 https://github.com/protocolbuffers/protobuf/releases/tag/v21.12 all和cpp后缀的包…

python植物大战僵尸项目源码【免费】

植物大战僵尸是一款经典的塔防游戏,玩家通过种植各种植物来抵御僵尸的进攻。 源码下载地址: 植物大战僵尸项目源码 提取码: 8muq

【前端】prop传值的用法

prop配置项的作用是让组件接收外部传过来的值。 组件标签上传值给vue组件对象 <script> export default {name: HelloWorld,data(){return{ }},props:[name,age] #简单接收 } </script>方式2:利用对象方式设置数据类型进行类型限制 props:{name:String…

kubernetes中pause容器的作用与源码详解

概述 摘要&#xff1a;上一篇文章我们介绍了kubernetes是如何通过pause容器来构建一个pod。本文我们对pause容器做一个总结&#xff0c;并再此基础上次深入浅出&#xff0c;从pause容器的源码详细了解pause容器的实现原理。 正文 pause容器是什么 在 Kubernetes 中&#xff…

echarts 实现中国geo地图自定义贴图实例

文章目录 1. 实现效果2. 设置自定义图片&#xff0c;做好准备3. echarts 实现贴图 1. 实现效果 实现自定义背景图&#xff0c;给echarts地图贴背景图效果&#xff0c; 先准备两张背景图片&#xff0c;一张是默认的&#xff0c;一张是鼠标悬浮替换的&#xff0c;如下两张图 2.…

基于EchoMimic加速版,可编辑标志点控制实现逼真音频驱动的肖像动画

EchoMimic 是蚂蚁集团终端技术部门开发的一项技术,旨在通过音频驱动生成逼真的肖像动画。对于那些初次接触这项技术的用户,本教程将带你逐步了解如何设置开发环境、获取项目代码、安装依赖,并最终成功运行示例生成自己的肖像动画。 文章目录 项目代码安装依赖业务拓展参数调…

webpack的热更新原理

Webpack热更新&#xff08; Hot Module Replacement&#xff0c;简称 HMR&#xff09;&#xff0c;无需完全刷新整个页面的同时&#xff0c;更新所有类型的模块&#xff0c;是 Webpack 提供的最有用的功能之一。 保留在完全重新加载页面期间丢失的应用程序状态。只更新变更内容…

【bug】通过lora方式微调sdxl inpainting踩坑

报错内容 ValueError: Attempting to unscale FP16 gradients. 报错位置 if accelerator.sync_gradients:params_to_clip (itertools.chain(unet_lora_parameters, text_lora_parameters_one, text_lora_parameters_two)if args.train_text_encoderelse unet_lora_parameters…

温湿度传感器SHT20的功能介绍和时序分析

目录 概述 1 认识SHT20 1.1 SHT20介绍 1.2 SHT20属性 1.3 接口介绍 1.4 SHT20的相关命令 1.5 转换时间 2 寄存器操作 2.1 复位操作 2.2 User Register 2.3 CRC Checksum 3 温湿度计算 3.1 相对湿度转换 3.2 温度换算 3.3 转换公式的C语言实现 概述 本文主要介绍…

ChatGLM-6B部署到本地电脑

引言 ChatGLM-6B是由清华大学开源的双语对话大模型&#xff0c;该模型有62亿参数&#xff0c;但在经过量化后模型体积大幅下降&#xff0c;因此不同于其他需要部署到服务器上的大模型&#xff0c;该模型可以部署到本地电脑&#xff0c;那么接下来我们来看看如何部署该模型。 …