Python---开发桌面应用程序

news/2025/10/26 23:06:24/文章来源:https://www.cnblogs.com/e0yu/p/19167548

早就知道可以使用Python的PyQT构建桌面应用程序了,但是没有具体实际过,以前都是使用前端来开发桌面应用程序的,安装依赖麻烦的要死,打包的时候还各种繁琐。

没想到使用Python来开发桌面应用程序如此的简单。

直接撸代码:

安装依赖:

pip install PyQt5

构建一个简单的PyQt程序:

from PyQt5.QtWidgets import QApplication, QWidget# 创建应用实例
app = QApplication([])# 创建主窗口
window = QWidget()
window.setWindowTitle("我的第一个 PyQt 程序")
window.setGeometry(100, 100, 400, 300)  # (x, y, width, height)# 显示窗口
window.show()# 运行应用
app.exec_()

运行它,桌面应用程序就创建好了。

具体代码参考:

https://www.runoob.com/python3/python-pyqt.html

我的需求是可以安装这个程序,然后能够打开网页,所以还需要安装网页模块:

pip install PyQtWebEngine

安装后就可以:

from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl# 创建应用实例
app = QApplication([])# 创建主窗口
window = QWidget()
window.setWindowTitle("嵌入式网页浏览器")
window.setGeometry(100, 100, 1024, 768)  # 增大窗口以更好显示网页# 创建垂直布局
layout = QVBoxLayout()# 创建网页视图组件
web_view = QWebEngineView()
# 加载网页(这里以百度为例,你可以替换成任何URL)
web_view.load(QUrl("http://www.baidu.com"))# 将网页视图添加到布局
layout.addWidget(web_view)# 设置窗口的主布局
window.setLayout(layout)# 显示窗口
window.show()# 运行应用
app.exec_()

还可以实现简易的浏览器:

from PyQt5.QtWidgets import (QApplication, QWidget, QVBoxLayout, QLineEdit, QPushButton)
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrlclass Browser(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle("简易浏览器")self.setGeometry(100, 100, 1024, 768)# 布局layout = QVBoxLayout()# 地址栏self.url_input = QLineEdit()self.url_input.returnPressed.connect(self.load_url)# 导航按钮btn_go = QPushButton("前往")btn_go.clicked.connect(self.load_url)# 网页视图self.web_view = QWebEngineView()# 添加组件到布局
        layout.addWidget(self.url_input)layout.addWidget(btn_go)layout.addWidget(self.web_view)self.setLayout(layout)def load_url(self):url = self.url_input.text()if not url.startswith(('http://', 'https://')):url = 'https://' + urlself.web_view.load(QUrl(url))if __name__ == "__main__":app = QApplication([])browser = Browser()browser.show()app.exec_()

我想要的是打包为exe的桌面应用程序,只需要再安装一个模块:

pip inatall PyInstaller

写一个简易的应用程序,比如叫:4.py

import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':app = QApplication(sys.argv)    win = QWidget()win.show()sys.exit(app.exec_())

然后就可以将这个 4.py 文件,或者上面的 .py 文件,打包为桌面软件:

pyinstaller -F -w 4.py

运行完成后,就会被打包在同目录的dist文件夹里面:

image

双击就能运行。

打完收工!

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

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

相关文章

Python实现验证码识别的完整流程解析

验证码(CAPTCHA)是网络安全防护中最常见的技术之一,主要用于防止恶意程序批量请求服务。然而,随着深度学习和图像处理技术的发展,验证码的自动识别已成为人工智能领域的一个重要应用场景。本文将通过 Python 展示…

基于Python的验证码自动识别方案设计与实现

验证码是互联网安全的重要组成部分,广泛应用于注册、登录、投票等场景。其主要目的是防止机器人程序的恶意请求。然而,随着图像处理和深度学习的发展,验证码自动识别技术逐渐成熟。本文将介绍一种基于 Python 的验证…

2025/10/26

2025/10/26学习数据结构

大学生为什么要认真听课

读这几篇博客,让我颇有共鸣。不少大学生从非专业课松懈到专业课失守,上课刷短视频更加剧了注意力流失,让我们逐渐放弃学习。大一刚开始我也会上课认真听讲,晚自习会听一些网课,补充上课没听到的知识。从非专业课的…

中科大「数学分析教程——上册」习题选做 - Neuro

1.6 节 \(\mathbf{Problem\ 1}\) 解: \[\begin{align*} &(1). \lim_{n \rightarrow \infin}\left(1 + \frac{1}{n - 2}\right)^n & = &\lim_{n \rightarrow \infin}\left(1 + \frac{1}{n - 2}\right)^{n …

记录一下

今天终于开始写C++了 题目:代码: include using namespace std; int main() { int n = 0; int arr[100] = { 0 }; int k = 0; cin >> n; while (k < n) { cin >> arr[k]; ++k; } int max = 0; int m…

实用指南:基于Springboot的DDD实战(不依赖框架)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

我是如何通过开发微信小游戏赚得人生第一桶金的

我是如何通过开发微信小游戏赚得人生第一桶金的我是如何通过开发微信小游戏赚得人生第一桶金的一、初识 2023-2024年开始接触游戏开发的,那时候公司的业务有些小游戏的玩法,玩法很简单,但是每场都挺火爆的,日活有1…

20232418 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232418 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1.实验内容 本次实验主要围绕免杀原理与实践展开,通过多种技术手段尝试实现恶意代码的免杀效果。首先,使用msfvenom生成不同格式的恶意文件(如exe、jar…

ADB命令手册 - Android Debug Bridge命令参考

ADB命令手册 - Android Debug Bridge命令参考 本手册包含ADB的常用命令、示例和拓展知识,帮助开发者和测试人员更好地使用ADB工具进行Android设备的调试和管理。 第一部分:ADB基础命令 adb version描述:显示ADB版本…

回忆录:梦开始的往事

回忆录:梦开始的往事 目录初入初入OI之门、 冲向算法 小奥之战 荣班 丘班失利 懵懂初一上(上)密码说明 由于文章内容涉及学校机密,不便直接公开发布,请希望阅读者洛谷私信hsr_ray或者添加微信hsrray2011,经作者审核…

大学生为啥一定要认真听讲

在我的大学生活中,上课分神似乎已经成为一种常态,我能清楚的认识到大学与高中学习态度的区别。在高中,我会因为老师讲课的进度快慢或者因为听课效果而选择去独立学习,从最后的结果来看,效果是有的。但是在大学,除…

以听筑基,以行践知:解锁学习新范式的思考

读罢三篇关于学习方法的文章,我对“如何高效学习”有了颠覆性认知。从前总觉得上课听不听无所谓,课后靠刷题就能补,直到看完Scalers关于“大学生上课必须认真听讲”的论述,才惊觉自己浪费了最宝贵的学习资源。老师…

Day4表单-imput标签

表单的作用是为了在网页上收集用户信息,一般在登录页面,注册页面和搜索区域应用 inpute标签的基本使用<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8">…

学好专业,养好体魄——我的学习感悟

不知不觉,已经来到了大二,读完老师分享的三篇文章,我最深的体悟是:专业学习没有捷径,唯有扎实掌握课堂上的基础知识,才能为后续的学习与实践筑牢根基。 数据科学与大数据技术专业知识体系繁杂,大二正是夯实基础…

ti2

JDK、JRE、JVM,以及三者的关系 1)JDK 指的是 java 开发工具包,它包括编译器、JAVA核心类库、JVM、开发辅助工具(jps、jinfo、jmap、jconsole、jvisualvm) 2)JRE 指的是 JAVA 程序运行环境,主要包括 JAVA 核心类…

单像素demo初探

入门仿真(零硬件)single_pixel_demo(Matlab + Python) 用 Hadamard 模式做采样,含加噪声与重建的完整最小示例;最适合第一天跑通。 GitHubsingle-pixel-imaging(教育向示例) 讲清单像素成像基本原理与流程,代…

昨天 今天 明天

祝你生日快乐今天的你超乎往常的坦率嘛 虽然今天的也是歌名一般这种乐色小文章开头是要介绍一下我的近况的 但是我觉得不介绍也没关系 我还是不能理解大学 就像我从来没有真正理解过高中 不管它处于进行时还是完成时 都…

刻意练习的重要性

「做中学(Learning By Doing)」之乒乓球刻意训练一年总结 https://www.cnblogs.com/rocedu/p/5826362.html 读这篇文章和《刻意练习》有感,刻意练习对我们学习和提升能力非常重要,这篇文章中说,自己打了二十多年的…

深入解析:解构IDP未来前景:去中心化金融的“阳谋”与以人为本的生态蓝图(解读)

深入解析:解构IDP未来前景:去中心化金融的“阳谋”与以人为本的生态蓝图(解读)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…