pyqt添加启动等待界面的操作
作者:“人生苦短” 时间:2023-04-29 02:27:11
一、实验环境
1.Windows7x64_SP1
2.anaconda3.7 + python3.7(anaconda集成,不需单独安装)
3.pyinstaller3.5#使用pyinstaller3.0,打包时报错
二、实验步骤
1.resource.qrc文件中添加图片资源
<RCC>
<qresource>
<file alias="contacts.png">ico/contacts.png</file>
<file alias="exit.png">ico/exit.png</file>
<file alias="about.png">ico/about.png</file>
<file alias="config.png">ico/config.png</file>
<file alias="help.png">ico/help.png</file>
<file alias="xel.png">ico/xel.png</file>
<file alias="xel_small.png">ico/xel_small.png</file>
<file alias="magnifier.png">ico/magnifier.png</file>
<file alias="wait.png">ico/wait.png</file>
</qresource>
</RCC>
2.使用pyrcc5生成最新的resource.py文件,命令参考如下:
pyrcc5 -o resource.py resource.qrc
3.更改程序主文件
# -*- coding: utf-8 -*-
import os,sys,time,re
from PyQt5.QtWidgets import QMainWindow,QMessageBox
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication,QDialog,QSplashScreen
from PyQt5 import QtCore,QtGui
from untitled import Ui_MainWindow
if __name__ == '__main__':
app = QApplication(sys.argv)
splash = QSplashScreen(QtGui.QPixmap(":/wait.png")) # 启动界面图片地址
splash.show() # 展示启动图片
app.processEvents() # 防止进程卡死
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/magnifier.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
tool = SmartBit_Tool()
tool.setWindowIcon(icon)
tool.show()
splash.finish(tool) # 关闭启动界面
sys.exit(app.exec_())
4.运行结果
运行exe文件发现,从双击exe文件至弹出启动界面图片,还是存在一定的延时!如何缩短这个延时,还需要继续研究,知道的童鞋也请告知!
5.提升运行速度
代码中不用的库,删除其导入语句
尽量使用from xxx import xxx,少用from xxx import *
使用pyinstaller打包文件,打包为一个文件夹
补充:PyQt5启动画面——等待程序启动不用干瞪眼
PyQt的启动画面可以通过QSplashScreen类来快捷制作,支持透明图片
import sys
from PyQt5 import QtWidgets, QtGui
# 对Qt部件的操作一般都要在创建Qt程序后才能进行
app = QtWidgets.QApplication(sys.argv)
# 创建启动界面,支持png透明图片
splash = QtWidgets.QSplashScreen(QtGui.QPixmap('splash.png'))
splash.show()
# 可以显示启动信息
splash.showMessage('正在加载……')
# 关闭启动画面
splash.close()
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://www.cnblogs.com/hester/p/11386956.html
标签:pyqt,启动,等待,界面
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python moviepy 的用法入门篇
2022-09-03 11:41:16
![](https://img.aspxhome.com/file/2023/5/131325_0s.png)
Python+OpenCV实现信用卡数字识别的方法详解
2022-01-15 14:25:41
![](https://img.aspxhome.com/file/2023/0/77730_0s.png)
模仿PHP写的ASP分页函数
2008-04-13 06:11:00
python入门学习之自带help功能初步使用示例
2021-05-27 17:07:28
关于长度单位pt、px、dpi的误解
2008-06-01 13:30:00
通过实例解析Python调用json模块
2022-09-22 02:05:06
SQL字符串处理函数大全
2024-01-25 07:09:13
JavaScript实现三种常用网页特效(offset、client、scroll系列)
2023-08-27 11:54:30
![](https://img.aspxhome.com/file/2023/3/56173_0s.png)
php+mysql删除指定编号员工信息的方法
2024-06-05 09:40:28
MySQL数据库中修改密码及访问限制设置详解
2009-09-01 14:19:00
BERT vs GPT自然语言处理中的关键差异详解
2022-04-01 08:15:36
Python2.7编程中SQLite3基本操作方法示例
2023-11-14 04:13:32
Python3 shelve对象持久存储原理详解
2022-06-30 13:43:39
![](https://img.aspxhome.com/file/2023/2/86542_0s.png)
Python保存数据至MySQL时中文问题
2011-02-23 12:06:00
Python 文件操作的详解及实例
2021-06-05 12:59:12
NumPy 如何生成多维数组的方法
2022-06-26 20:40:51
Python 转换时间戳为指定格式日期
2023-11-05 13:48:41
Oracle分析函数用法详解
2023-07-16 15:35:26
![](https://img.aspxhome.com/file/2023/4/64834_0s.png)
用python自动生成日历
2022-08-28 14:28:58
![](https://img.aspxhome.com/file/2023/4/72174_0s.png)
MySQL的join buffer原理
2024-01-28 01:44:19