PyQt5入门教程:从安装到构建简单应用

PyQt5入门教程:从安装到构建简单应用

简介

PyQt5是一个功能强大的Python绑定库,用于Qt应用程序框架。它允许我们使用Python语言快速开发跨平台的桌面应用程序。本教程将引导你完成PyQt5的安装、配置,并带你创建一个简单的图形用户界面(GUI)应用程序。

Part 1: 安装PyQt5

在你的开发环境中安装PyQt5:

  1. 打开终端或命令提示符。

  2. 创建并激活虚拟环境(可选,但推荐):

    python -m venv myenv
    myenv\Scripts\activate  # Windows
    source myenv/bin/activate  # macOS/Linux
    
  3. 使用pip安装PyQt5和pyqt5-tools:

    pip install PyQt5 pyqt5-tools
    

    如果下载速度慢,可以指定国内镜像源:

    pip install PyQt5 pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  4. 使用pip list确认PyQt5是否已安装。

Part 2: PyCharm配置PyQt5

在PyCharm中配置PyQt5,以便使用Qt Designer设计UI:

  1. 打开PyCharm,进入“File” -> “Settings” -> “Tools” -> “External Tools”。

  2. 点击“+”添加新工具,配置Qt Designer、PyUIC和Pyrcc。

    • QtDesigner

      • 名称:QtDesigner
      • 程序:designer.exe的路径(例如:C:\Python39\Lib\site-packages\PyQt5\Qt\bin\designer.exe)。
      • 工作目录:$FileDir$
    • PyUIC

      • 名称:PyUIC
      • 程序:Python解释器的路径。
      • 实参:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
      • 工作目录:$FileDir$
    • Pyrcc

      • 名称:Pyrcc
      • 程序:Python解释器的路径。
      • 实参:-rcc $FileName$ -o $FileNameWithoutExtension$_rc.py
      • 工作目录:$FileDir$
  3. 配置完成后,你可以通过PyCharm访问Qt Designer。

Part 3: 设计第一个UI

使用Qt Designer设计UI:

  1. 打开Qt Designer,选择“Main Window”并创建新窗口。
  2. 在“Widget Box”中选择组件,拖拽到设计画布上。
  3. 使用“属性编辑器”修改组件的属性。
  4. 完成设计后,使用快捷键Ctrl + R预览UI。

Part 4: 将UI转换为Python代码

  1. 在Qt Designer中完成设计后,保存.ui文件。

  2. 使用PyUIC工具将.ui文件转换为Python代码:

    pyuic5 your_ui_file.ui -o output_py_file.py
    
  3. 创建一个新的Python脚本,例如main.py,引入QApplication和QMainWindow,并使用转换后的UI类创建应用程序:

    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    import your_ui_file  # 替换为你的.ui转换后的模块名
    
    class MainWindow(QMainWindow, your_ui_file.Ui_MainWindow):
        def __init__(self):
            super().__init__()
            self.setupUi(self)
    
            # 添加按钮点击事件
            self.pushButton.clicked.connect(self.on_pushButton_clicked)
    
        def on_pushButton_clicked(self):
            print("按钮被点击了!")
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        mainWindow = MainWindow()
        mainWindow.show()
        sys.exit(app.exec_())
    
  4. 运行main.py,你将看到设计的用户界面,并且按钮点击事件已经可以正常工作。

结语

本教程为你提供了一个完整的PyQt5入门流程,从安装到配置,再到设计UI和编写应用逻辑。PyQt5的世界非常广阔,你可以继续探索更多的组件和布局,甚至学习如何将应用程序打包发布。希望这个教程能够帮助你开启PyQt5的学习之旅。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文学习_UVSCAN: Detecting Third-Party Component Usage Violations in IoT Firmware

论文名称发表时间发表期刊期刊等级研究单位 Understanding the Security Risks Introduced by Third-Party Components in IoT Firmware 2024年IEEE TDSCCCF A佐治亚理工学院 1. 引言 研究背景:物联网(IoT)已经无处不在,为我们…

DGMamba: Domain Generalization via Generalized State Space Model论文笔记

文章目录 DGMamba: Domain Generalization via Generalized State Space Model摘要动机DGMamba设计隐藏状态抑制(HSS)语义感知补丁细化(SPR)免先验扫描域上下文交换上下文patch识别 实验结果 DGMamba: Domain Generalization via Generalized State Space Model paper: https:/…

基于Cardinal的AWD攻防平台搭建与使用以及基于docker的题目环境部署

关于 CTF 靶场的搭建与完善勇师傅前面已经总结过了,参考: CTF靶场搭建及Web赛题制作与终端docker环境部署_ctfoj搭建-CSDN博客 基于H1ve一分钟搭好CTF靶场-CSDN博客 Nginx首页修改及使用Nginx实现端口转发_nginx 修改欢迎首页-CSDN博客 关于H1ve导…

Winform使用HttpClient调用WebApi的基本用法

Winform程序调用WebApi的方式有很多,本文学习并记录采用HttpClient调用基于GET、POST请求的WebApi的基本方式。WebApi使用之前编写的检索环境检测数据的接口,如下图所示。 调用基于GET请求的无参数WebApi 创建HttpClient实例后调用GetStringAsync函数获…

2.4 C#开发环境 xml格式保存参数----范例实现

2.4C#开发环境 xml格式保存参数----范例实现 1 程序参数保存目录层次说明 1 选择程序号| 相机号|窗口号 2 导入参数:就会从本地目录读取参数,并且显示图片和ROI 3 保存参数:把当前控件图片和ROI信息保存到指定程序号|相机号|窗口号中 2 参数…

剪映数字人口播原理终于搞清楚了

剪映版本升级了,新版本支持数字人定制,于是我赶紧申请了使用资格 目前的价格是49元单个价格/30天 支付49元之后剪映要求上传2.5至10分钟的视频 接着要阅读一段话并录制视频上传 第三步提交,提交完成之后大概两三个小时就会有一个特定数字人形象出现:

不只是咨询,更是转型加速器——精益生产咨询!

以前咱们说精益生产,总觉得是套现成的模板,每家企业都得照葫芦画瓢。但现在不一样了,精益生产咨询就像是个高级定制师,它深入了解你的企业现状、行业特点、市场趋势,然后给你量身打造一套专属的精益转型方案。这种既接…

java内存管理机制详解之运行时数据区

正文 C与java之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙里的人却想出来…… 与C、C程序员时刻要关注着内存的分配与释放,会不会又有哪里出现了内存泄露不同是,java程序员可以“高枕无忧”。因为…

Visual Studio 中的键盘快捷方式

1. Visual Studio 中的键盘快捷方式 1.1. 可打印快捷方式备忘单 1.2. Visual Studio 的常用键盘快捷方式 本部分中的所有快捷方式都将全局应用(除非另有指定)。 “全局”上下文表示该快捷方式适用于 Visual Studio 中的任何工具窗口。 生成&#xff1…

【C语言】指针经典例题

题1&#xff1a; #include <stdio.h>int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&#xff1f; 解答如下&#xff1a; 题2&#xff1a; #include <std…

Access数据操作

Access Access 作为 Office的组件之一&#xff0c;在很多 Excel难以施展其能力的场所&#xff0c;也能轻松应对。同为Office组件之一的Excel具有灵活的数据处理和分析能力&#xff0c;然而&#xff0c;其能力是有局限的&#xff0c; 比如当涉及两个数据表之间的“关联”操作时&…

【分布式数据仓库Hive】HivQL的使用

目录 一、Hive的基本操作 1. 使用Hive创建数据库test 2. 检索数据库&#xff08;模糊查看&#xff09;&#xff0c;检索形如’te*’的数据库 3. 查看数据库test详情 4. 删除数据库test 5. 创建一个学生数据库Stus&#xff0c;在其中创建一个内部表Student&#xff0c;表格…

快速下载!Windows 7旗舰版系统:集成所有补丁!

微软对Windows7系统停止支持后&#xff0c;Windows7设备不再收到安全补丁程序、修补程序。尽管如此&#xff0c;许多用户仍然认为Windows7是最好用、最经典的系统。有用户就特别喜欢Windows7旗舰版系统&#xff0c;那么接下来系统之家小编为大家带来的全补丁版本的Windows7系统…

互联网应用主流框架整合之SpringCloud微服务治理

微服务架构理念 关于微服务的概念、理念及设计相关内容,并没有特别严格的边界和定义,某种意义上说,适合的就是最好的,在之前的文章中有过详细的阐述,微服务[v1.0.0][Spring生态概述]、微服务[设计与运行]、微服务[v1.0.0][服务调用]、微服务[开发生命周期]、微服务[面临的…

LLM应用:传统NLP任务

LLM出来以后&#xff0c;知乎上就出现了“传统NLP已死”的言论&#xff0c;但是传统NLP真的就被扔进历史的垃圾桶了吗&#xff1f; 其实&#xff0c;尽管LLM具有出色的通用能力&#xff0c;但仍然无法有效应对低资源领域的自然语言处理任务&#xff0c;如小语种翻译。为了更好地…

springboot+vue+mybatis前台点菜系统+PPT+论文+讲解+售后

21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存储达到…

Linux静态库的制作

Linux操作系统支持的函数库分为&#xff1a; 静态库&#xff0c;libxxx.a&#xff0c;在编译时就将库编译进可执行程序中。 优点&#xff1a;程序的运行环境中不需要外部的函数库。 缺点&#xff1a;可执行程序大 动态库&#xff0c;又称共享库&#xff0c;libxxx.so&a…

【目标检测】DINO

一、引言 论文&#xff1a; DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection 作者&#xff1a; IDEA 代码&#xff1a; DINO 注意&#xff1a; 该算法是在Deformable DETR、DAB-DETR、DN-DETR基础上的改进&#xff0c;在学习该算法前&#…

一个专为Android平台设计的高度可定制的日历库

大家好&#xff0c;今天给大家分享一个高度可定制的日历库kizitonwose/Calendar。 Calendar专为Android平台设计&#xff0c;支持RecyclerView和Compose框架。它提供了丰富的功能&#xff0c;允许开发者根据需求定制日历的外观和功能。 项目介绍 此库是开发Android应用时&…