0

0

如何用Python开发GUI应用?PyQt5完整项目教程

絕刀狂花

絕刀狂花

发布时间:2025-07-13 13:19:02

|

266人浏览过

|

来源于php中文网

原创

python开发gui应用不难,借助pyqt5可快速上手。1. 安装pyqt5并创建项目结构,使用qapplication和qwidget搭建基础窗口;2. 使用qvboxlayout等布局结合qlabel、qlineedit、qpushbutton设计温度转换器界面;3. 绑定按钮事件实现摄氏度转华氏度逻辑,并加入异常处理;4. 使用pyinstaller打包程序,添加参数优化生成效果。通过这些步骤即可完成一个完整的小型gui应用。

如何用Python开发GUI应用?PyQt5完整项目教程

用Python开发GUI应用其实并不难,尤其是借助像 PyQt5 这样的成熟库。它功能强大、组件丰富,适合从简单界面到复杂桌面应用的开发。本文会以一个完整的小项目为例,带你一步步了解如何使用 PyQt5 创建 GUI 应用。

如何用Python开发GUI应用?PyQt5完整项目教程

准备工作:安装PyQt5和基本结构

在开始之前,确保你已经安装了 PyQt5:

如何用Python开发GUI应用?PyQt5完整项目教程
pip install pyqt5

创建一个新文件夹作为项目目录,比如 my_gui_app,然后在里面新建一个主程序文件,例如 main.py。这就是你整个 GUI 程序的入口点。

立即学习Python免费学习笔记(深入)”;

PyQt5 的核心是基于 Qt 框架的类和对象系统,最基础的结构包括:

如何用Python开发GUI应用?PyQt5完整项目教程
  • QApplication:管理应用程序的控制流
  • QWidget:基础窗口控件
  • 各种布局和控件(按钮、输入框等)

你可以先写一个简单的窗口程序试试看:

import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("我的第一个GUI")
window.resize(400, 300)
window.show()
sys.exit(app.exec_())

运行后应该能看到一个空白窗口,说明你的环境已经准备好了。


界面设计:用布局和控件搭建UI

接下来就是构建界面了。我们来做一个“温度转换器”的小工具,可以把摄氏度转成华氏度。

主要用到的控件有:

  • QLabel:显示文字
  • QLineEdit:让用户输入数字
  • QPushButton:点击触发操作

我们可以采用垂直布局(QVBoxLayout)把它们排列起来:

from PyQt5.QtWidgets import QVBoxLayout, QLabel, QLineEdit, QPushButton

layout = QVBoxLayout()

temp_input = QLineEdit()
result_label = QLabel("结果:")
convert_button = QPushButton("转换")

layout.addWidget(QLabel("请输入摄氏度:"))
layout.addWidget(temp_input)
layout.addWidget(convert_button)
layout.addWidget(result_label)

window.setLayout(layout)

这个布局方式很直观,适合新手快速搭建界面。如果你需要更复杂的排版,也可以结合 QHBoxLayout 或者 QGridLayout 使用。

wxPython 2.8 Application Development Cookbook英文pdf版
wxPython 2.8 Application Development Cookbook英文pdf版

在今天的桌面应用世界上有大量的奖励,以便能够开发应用程序,可以运行在多个环境。目前,有一种跨平台框架可供选择的Python开发桌面应用程序屈指可数。 wxPython的就是这样的一个跨平台的GUI工具包的Python编程语言。它允许Python程序员创建一个完整的,功能强大的图形用户界面的程序,简单,方便。 wxPython的代码风格,改变了多年来不少,并得到更多Python的。例子,你会发现这本书是对不断更新,反映在风格上的变化。 本书提供最新的书,快速创建健壮的,可靠,可重复使用的wxPython应用

下载

功能实现:绑定事件与处理逻辑

现在界面有了,下一步就是让按钮能干活。

我们需要给按钮绑定一个函数,当点击时读取输入值并计算:

def convert_temp():
    try:
        celsius = float(temp_input.text())
        fahrenheit = celsius * 9 / 5 + 32
        result_label.setText(f"结果:{fahrenheit:.2f} °F")
    except ValueError:
        result_label.setText("请输入有效的数字!")

convert_button.clicked.connect(convert_temp)

这段代码做了几件事:

  • 把输入框的内容转成浮点数
  • 执行公式转换
  • 更新结果显示
  • 加入异常处理,避免用户输入非数字内容导致崩溃

注意这里没有用到任何复杂的线程或异步机制,因为这是一个同步操作,足够应对大多数小型GUI任务。


项目打包:让别人也能运行你的程序

写完之后,你可能希望把这个程序发给别人用。这时候就需要打包。

推荐使用 PyInstaller:

pip install pyinstaller
pyinstaller --onefile main.py

生成的可执行文件会在 dist/ 目录下。虽然打包后的体积有点大(因为包含了整个 Python 解释器和依赖),但确实是最方便的方式之一。

需要注意几点:

  • 如果你用了图片或其他资源文件,要手动配置资源路径
  • Windows 下默认是命令行窗口,如果不想显示黑框,可以用 --noconsole 参数
  • 可以加个图标,提升专业感:--icon=app.ico

基本上就这些。PyQt5 的学习曲线不算陡峭,只要你对 Python 基础熟悉,就可以很快上手做一个完整的 GUI 工具出来。关键在于多练习,尝试把常用功能封装成模块,以后复用起来更方便。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
视频后缀名都有哪些
视频后缀名都有哪些

视频后缀名都有avi、mpg、mpeg、rm、rmvb、flv、wmv、mov、mkv、ASF、M1V、M2V、MPE、QT、VOB、RA、RMJ、RMS、RAM、等等。更多关于视频后缀名的相关知识,详情请看本专题下面的文章,php中文网欢迎大家前来学习。

3554

2023.10.31

C++ Qt图形开发
C++ Qt图形开发

本专题专注于 C++ Qt框架在图形界面开发中的应用,系统讲解窗口设计、信号与槽机制、界面布局、事件处理、数据库连接与跨平台打包等核心技能,通过多个桌面应用项目实战,帮助学员快速掌握 Qt 框架并独立完成跨平台GUI软件的开发。

69

2025.08.15

C++ 图形界面开发基础(Qt方向)
C++ 图形界面开发基础(Qt方向)

本专题系统讲解 使用 C++ 与 Qt 进行图形界面(GUI)开发的核心技能,内容涵盖 Qt 项目结构、窗口组件、信号与槽机制、事件处理、布局管理、资源管理,以及跨平台编译与打包流程。通过多个小型桌面应用实战案例,帮助学习者掌握从界面设计到功能实现的完整 GUI 开发能力。

80

2025.12.05

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

525

2023.08.10

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

833

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1132

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

804

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.08.02

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

54

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 3.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号