pyqt5 +pyinstall打造属于自己的桌面版程序(学习阶段)

article/2025/10/11 14:52:13

网上关于pyqt5的教程特别少,终于东拼西凑,做出一点东西出来,很简单的小应用,便于上手学习。
pyqt5的主文件代码如下,代码特别多,也没怎么细分。大家可以参考下。github地址
pyinstall打包的一点小技巧送给大家。

  1. 取消生成程序doc窗口使用命令
pyinstaller -F -i 图标路径   文件路径   --noconsole(取消dos)
  1. 如果生成的应用有图片文件,可以先把图片转化为py文件,然后在py文件里面引用即可下面上代码
import base64def jpg_py(picture_names, py_name="imgs"):"""将图像文件转换为py文件:param picture_name::return:"""write_data = []for index,picture_name in enumerate(picture_names):# paths = picture_name.replace('file:///','')# filename = "jpg_01-%s"%indexopen_jpg = open("%s" % paths, 'rb')b64str = base64.b64encode(open_jpg.read())open_jpg.close()with open('%s.py' % py_name, 'a+') as f :# 注意这边b64str一定要加上.decode()f.write('%s = "%s"\n' % (filename, b64str.decode()))if __name__ == '__main__':pics = [r'C:/Users/zq/Desktop/Project/ico/ooopic_1548575226.ico']jpg_py(pics, 'memor555y_pic')  # 将pics里面的图片写到 memory_pic.py 中print("ok")

引用的代码如下

def get_pic(pic_code, pic_name):image = open(pic_name, 'wb')image.write(base64.b64decode(pic_code))image.close()return image

可以在程序最后用os.remove()方法移除掉就ok
这个小项目主要包含:

  • pyqt5多线程应用
  • pyqt5和js脚本交互
  • pyqt5和爬虫融合
  • pyqt5内嵌浏览器的初级入门
  • pyqt5页面css样式学习
    下面上一点图片
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    主文件代码如下,很多,慎重观看
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'hello.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from pdf_word import parser_pdfs
from memory_pic import mg_ico
from memory_pic import start_jpg
from memory_pic import jpg_5
from pdf_str import readPDF
from get_ip import get_host_ip
from cs1 import htmlfrom PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import QTimer, QDateTime
from PyQt5.QtGui import QIcon,  QPixmap, QFont
from PyQt5.QtWidgets import QApplication, QMessageBox, QWidget, QDateTimeEdit, QMainWindow, QLCDNumber, QDesktopWidget, \QFileDialog, QAction, QMenu, QSystemTrayIconfrom PyQt5.QtCore import QUrlfrom PyQt5.QtWebEngineWidgets import QWebEngineViewimport os
import sys
import base64from spiders import spider_weath##################################################
# 加载全局图片资源 函数                       #
#                                                #
##################################################
def get_pic(pic_code, pic_name):image = open(pic_name, 'wb')image.write(base64.b64decode(pic_code))image.close()return image################################################### 加载全局图片资源                        ##                                                #################################################### 在这里使用图片 icon.icoimg_3 = get_pic(mg_ico, 'mg.ico')
img_st = get_pic(jpg_5, '01-5.jpg')
img_st = get_pic(start_jpg, 'start.jpg')##################################################
# 唯一ui类                                        #
#                                                #
##################################################class Ui_Dialog(QWidget):windowList = []def setupUi(self, Dialog):Dialog.setObjectName("Dialog")# Dialog.resize(1000, 950)Dialog.setGeometry(400, 50, 1000, 950)# Dialog.setDisabled(False)Dialog.setWindowOpacity(0.95)  # 设置窗口透明度# Dialog.setWindowFlag(QtCore.Qt.FramelessWindowHint)  # 隐藏边框# Dialog.setDisabled(True)# Dialog.WindowMinimizeButtonHint()Dialog.setStyleSheet("#Dialog{background:red;border-top:1px solid white;border-bottom:1px solid white;border-left:1px solid white;border-top-left-radius:10px;border-bottom-left-radius:10px;}")# Dialog.setAttribute(QtCore.Qt.WA_TranslucentBackground)  # 设置窗口背景透明self.cwd = os.getcwd()self.center()self.tabWidget = QtWidgets.QTabWidget(Dialog)self.tabWidget.setGeometry(QtCore.QRect(0, 0, 1000, 950))self.tabWidget.setObjectName("tabWidget")# QTableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Fixed)################################################### c创建一个tabwidget(上方工具栏)                         ##                                                ###################################################self.tab = QtWidgets.QWidget()self.tab.setObjectName("tab1")self.tabWidget.setCurrentIndex(1)# self.tabWidget.showNormal()self.tab3 = QtWidgets.QWidget()self.tab3.setObjectName("tab3")# self.tab3.setLayout(self.tabWidget)self.tab4 = QtWidgets.QWidget()self.tab4.setObjectName("tab4")self.tab5 = QtWidgets.QWidget()self.tab5.setObjectName("tab5")self.tabWidget.addTab(self.tab, "")self.tabWidget.addTab(self.tab3, "")self.tabWidget.addTab(self.tab4, "")self.tabWidget.addTab(self.tab5, "")self.tabWidget.setDocumentMode(True)self.setAcceptDrops(True)################################################### 创建一个弹出框全局变量                             ##                                                ###################################################self.msgBox = QMessageBox()  # 创建弹出框self.mongo = QtWidgets.QPushButton(self.tab)self.mongo.setGeometry(QtCore.QRect(10, 40, 130, 40))self.mongo.setObjectName("pushButton_mongo")self.jupy = QtWidgets.QPushButton(self.tab)self.jupy.setGeometry(QtCore.QRect(160, 40, 130, 42))self.jupy.setObjectName("pushButton_2")self.lineEdit_2 = QtWidgets.QLineEdit(self.tab)self.lineEdit_2.setGeometry(QtCore.QRect(10, 270, 451, 41))self.lineEdit_2.setObjectName("lineEdit_2")self.lineEdit_2.setStyleSheet('color:#BA55D3')self.lineEdit_3 = QtWidgets.QLineEdit(self.tab)self.lineEdit_3.setGeometry(QtCore.QRect(10, 220, 451, 41))self.lineEdit_3.setObjectName("lineEdit_3")self.base_str = QtWidgets.QPushButton(self.tab)self.base_str.setGeometry(QtCore.QRect(510, 220, 131, 41))self.base_str.setObjectName("pushButton_4")self.str_base = QtWidgets.QPushButton(self.tab)self.str_base.setGeometry(QtCore.QRect(510, 270, 131, 41))self.str_base.setObjectName("pushButton_5")self.textBrowser = QtWidgets.QTextBrowser(self.tab)self.textBrowser.setGeometry(QtCore.QRe

http://chatgpt.dhexx.cn/article/9crLhQtm.shtml

相关文章

tkinter - 使用Pyinstall进行打包封装

1 需要安装 PyInstaller C:\Users\30818> pip install pyinstaller 2 将模块py文件打包成pyd 防止反编译暴露源代码 pyd是一个模块插件 可以通过 Import 来引入pyd文件 直接编译会提示二进制读取错误 2-1 安装cython pip install cython 2-2 在当前目录创建一个 set…

【踩坑日记(一)】: Pyinstall 打包.py文件 生成exe可执行文件

文章目录 Pyinstall 打包.py文件 生成exe可执行文件如何入坑&出坑Analysis 实例其他实例常用参数参考文档:Pyinstall 官方手册 Pyinstall 打包.py文件 生成exe可执行文件 原本认为很轻松的事情,结果花了近2个小时才搞定,值得记录下踩的坑…

Ubuntu 16.04 安装 Pyinstall

Ubuntu 16.04 安装 Pyinstall 预装环境 python3 version:3.5pip version:8.1 报错如下: 首先直接安装 pyinstall 报错,pip 版本过低,要升级版本使用 提供的命令升级 pip,但是开始套娃,一直循…

pyinstall 打包报错

关于使用pyinstaller 打包报错 我的python安装位置为 安装位置/usr/local/python3 关于我的报错环境属于linux 我的pyinstaller 是使用pip 安装的 pip install pyinstaller 在使用pycharm 打包的时候,报错 打包就告诉我缺少什么 关于python的 iso包 我当时有全磁盘搜索该文…

pyinstall exe打包详解

在学习和工作之中,想制作一些小工具,用python秃了一个晚上,拿到公司,发现要安装python才能用,看别人的博客看不懂,别急,一篇搞定。 一、pyinstaller安装 pyinstaller 是一个python库&#xff0…

pyinstall加密打包

这个工具打包真的是挺省事的,但是一旦涉及保护源码,那么原来简单的打包就不够用了。轻易就能被人反编译。 工具自然也是要进步的,现在pyinstall支持加密打包了。 虽然我没查到他加密的原理是什么,但是应该比原来破解增加了一些难度…

PyInstall的安装,使用,以及最后打包成一个exe文件

首先PyInstall安装 pip3 install pyinstaller -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com 打包常用命令 pyinstaller -w -F test.py -w 表示运行exe文件后不出现cmd命令窗口 -F 表示打包成一个单独的exe文件 使用命令后会生成两个文件夹。 …

WIFI传输速度测试

环境: 1.A电脑共享文件,有线1000M,空载,正常机械硬盘,硬盘速度120M/S 2.B电脑从A拷贝数据,USB1.5米延长线接的网卡,USB2.0,WIFI 5G 600M,空载 3.拷贝文件,阿凡…

诺基亚N1 WIFI感叹号消除

Android Captive Portal Server 安卓系统wifi连接后,与CPS服务器通信,检测是否连接到互联网,当不能默认的CPS时就会有感叹号。 通过ADB设置可以消除这个感叹号。 下好ADB之后,打开ADB文件夹,按住shift鼠标右键&…

WIFI理论速度计算

参考: https://cn.ui.vmall.com/thread-1349237-1-4.html 以下是各个WIFI版本的最大吞吐量表 wifi802.11802.11a802.11b802.11g802.11n802.11ac最大吞吐量(Mbps)25411546006928 强调下,MbpsMbit/s即兆比特每秒(1,000,000bit/s)不…

Android 修改wifi阀值,6种简单方法使WiFi网络提速

6种简单方法使WiFi网络提速 导语:不给力的WiFi连接使得无线上网给人的感觉像是回到了拨号时代。以下是小编精心整理的有关电脑网络知识,希望对大家有所帮助。 1、升级过时的路由器 并非所有人都愿意花钱解决WiFi网速慢的问题,但许多人都需要这么做。最近数年路由器技术取得了…

WIFI 常识

DSSS (Direct Sequence Spread Spectrum)直接序列扩频 FHSS,跳频技术 (Frequency-Hopping Spread Spectrum) FHSS和DSSS比较 跳频扩频(FHSS): 跳频扩频(FHSS)技术是通过“伪随机码”的调制,信息的载波受…

Win10系统正确设置MTU值加快WIFI速度的方法

MTU是Maximum Transmission Unit缩写,中文名:最大传输单元。 工具/原料 硬件:电脑 操作系统:Windows 10 方法/步骤 第一步:查询自己电脑的MTU值 右键【开始】–【命令提示符(管理员)】; netsh interface …

WiFi的真实速率

“虽然许多路由器厂商宣称自家的路由器可以达到极高的速率,但实际上用户购买回去用起来却很难达到很快的速率。因为WiFi传输速率是符合木桶效应的,许多时候速率受限于接入路由器的WiFi终端性能。只有全链路能够达到的速率,才是使用者感受到的…

esp32测试wifi速率

一、下载demo, demo路径esp-idf\examples\wifi\iperf 注意:运行可能会报分区表错,idf.py menuconfig修改下flash为DIO模式再试; 二、测试 1、上电运行demo,PC和esp32连接同一个wifi热点; 2、执行idf.p…

WIFI6速率

WiFi 6在160MHz信道宽度下,单流最快速率为1201Mbit/s,理论最大数据吞吐量9.6Gbps。跟前五代比一比:第一代 802.11b(Wi-Fi 1),最快11Mbit/s第二代 802.11a(Wi-Fi 2),最快5…

提高企业WiFi速度的快速简便的方法—Vecloud微云

WiFi已成为必不可少的商业工具。连接缓慢或不可靠都会对员工的工作效率和客户服务产生不利影响。 但是,如何确保充分利用无线互联网解决方案呢? 以下是一些提高组织中的WiFi速度的快速简便的方法。 零成本提升WiFi速度的方法 在考虑附有成本的解决方案…

SDIO WiFi问题排查

SDIO WiFi问题排查: SDIO WiFi问题排查 | DDNotes背景 Platform: RK3399 OS: Android7.1.2 Kernel: v4.4.103 问题:Android系统没法打开wifi,10几台机器,有1,2台可以,其他要么一直不…

手机wife修改dns服务器,简单几步DNS设置,让你手机的WiFi速度提升几倍

对于一个手机不离手的人,网速对他/她的重要性不用多说,而WiFi无疑是使用场景最多的连接方式,它的连接速度、下载/上传速度将直接影响我们的使用体验,小编在使用手机的过程中测试了很多针对WiFi的提速方法,要论效果&…

wifi提速技巧:十大方法瞬间提升wifi速度

手机wifi速度慢真是很让人苦恼,有什么有效的wifi提速方法吗?当然有啦~绿茶小编今天就为大家带来了提升wifi速度的十大方法,能激活wifi表现,提升无线网络哦,快来看看吧! 十大方法瞬间提升wifi速度: 每当我们谈到要提高…