pyqt添加启动等待界面的操作

一、实验环境

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()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法

    QWidget基本介绍 基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类. 窗口坐标系统 PyQt使用统一的坐标系统来定位窗口控件的位置和大小,具体如下 以屏幕左上角为原点,也就是(0, 0)点,从左向右为x轴正方向,从上向下为y轴正方向,整个屏幕的坐标系统用来定位顶层窗口. 在窗口内部也有自己的坐标系统,该坐标系统以客户区的左上角为原点,从左向右为x轴正方向,从上到下为y轴正方向,在客户区周围有标题栏和边框. 从上图中,可以将这些成

  • python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例

    PyQt5布局控件QVBoxLayout简介 采用QVBoxLayout类,按照从上到下的顺序添加控件 本节内容较少,演示两个实例,便于明白QVBoxLayout(垂直布局)的使用 QVBoxLayout的正常使用实例 import sys from PyQt5.QtWidgets import QApplication ,QWidget ,QVBoxLayout , QPushButton class Winform(QWidget): def __init__(self,parent=Non

  • python GUI库图形界面开发之PyQt5线程类QThread详细使用方法

    QThread是Qt的线程类中最核心的底层类.由于PyQt的的跨平台特性,QThread要隐藏所有与平台相关的代码 要使用的QThread开始一个线程,可以创建它的一个子类,然后覆盖其它QThread.run()函数 class Thread(QThread): def __init __(self): super(Thread,self).__ init __() def run(self): #线程相关的代码 pass 接下来创建一个新的线程 thread = Thread() thread

  • pyqt添加启动等待界面的操作

    一.实验环境 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 a

  • idea显示springboot多服务启动界面service操作

    如果是多模块的微服务,idea提供了一个可以多服务启动的界面services,如果你的项目里没看到这个界面: 那么你需要在顶级的maven工程中找到这个配置,然后找到 component name="RunDashboard"这个节点整个替换掉: <component name="RunDashboard"> <option name="configurationTypes"> <set> <option

  • Android 应用启动欢迎界面广告的实现实例

    Android 应用启动欢迎界面广告 0.写在前面 在这篇教程中来实现一个类似于微信的的延迟3秒再进入主界面的效果. 1.项目准备 先新建一个空的android项目.里面只自带一个MainActivity,首先我们再新建一个Activity叫做WelcomeActivity继承自Activity. Activity代码如下: //package在此省略,根据实际自行添加 import android.app.Activity; import android.os.Bundle; import a

  • Android 开发使用PopupWindow实现加载等待界面功能示例

    本文实例讲述了Android 开发使用PopupWindow实现加载等待界面功能.分享给大家供大家参考,具体如下: 实现加载等待界面我用了两种方式,一种是用PopupWindow实现,另一种便是用Activity实现.用Activity实现方法请见我的另一篇博客: Android 使用Activity实现加载等待界面 首先看效果: 用PopupWindow实现此功能还是比较简单的,首先我们写一个布局,只有一个登录按钮,用于触发等待界面: <?xml version="1.0" e

  • vue自动添加浏览器兼容前后缀操作

    1.安装loader 安装postcss-loader 和 autoprefixer 下载: cnpm install postcss-loader autoprefixer --save-dev 在webpack.config.js里面设置以下代码 test:/\.css$/, use: ['style-loader','css-loader',{ loader: "postcss-loader", options:{ plugins:[ require("autopref

  • 在idea 中添加和删除模块Module操作

    1.添加模块 2.删除模块 补充知识:IDEA添加子Module的正确姿势 因需求要增加一个新的测试模块,于是要在一堆Module中再添加一个Module,单纯的我没有丝毫杂念的开始进行添加了. 1. 要在哪个目录下添加Module, 就对着该目录右击 -> new -> Module (该目录下必须有pom.xml文件, 否则是没有Module这个选项的) 2. 按提示操作输入必须填写的信息, 最后一个界面如下图: (注意:case_ignite_cache就是被右击的目录, 要在这个目录下

  • Android 开发使用Activity实现加载等待界面功能示例

    本文实例讲述了Android 开发使用Activity实现加载等待界面功能.分享给大家供大家参考,具体如下: 实现加载等待界面我用了两种方式,一种是用PopupWindow实现,另一种便是用Activity实现.用PopupWindow实现方法请见我的另一篇博客: android使用PopupWindow实现加载等待界面 好了,下面开始.先上效果: 基本原理就是在主界面点击按钮(以登录按钮为例)之后,打开一个新的Activity,此Activity以对话框形式展示.首先,主界面(一个登录按钮以及

  • JQuery EasyUI学习教程之datagrid 添加、修改、删除操作

    一篇关于JQueryEasyUI学习之datagrid 添加.修改.删除 学习笔记教程有需要了解的朋友可参考本的笔记,批量删除,双击表单修改.选中行修改,增加行修改,再有就是扩展editor的方法,无需废话,直接上代码,代码中的注释写的很详细 <script type="text/javascript" charst="utf-8">var editFlag = undefined;//设置一个编辑标记 //因为layout框架指向href时,只取htm

  • 安装Node.js并启动本地服务的操作教程

    1.下载安装包: 下载地址:https://nodejs.org/en/download/,根据自己电脑的配置下载相应的windows64位安装包,下载完成后,进行安装. 2.检查是否安装成功 安装完成后,打开命令行窗口,检查是否安装成功,如下图所示,键入node -v出现node.js的版本,键入npm -v出现npm的版本,说明两者均已安装成功. 3.配置环境变量 由于我的电脑之前安装过node.js,所以需要检测一下是否配置了环境变量,打开命令行,输入命令"path",输出结果中

  • Android客户端首次启动引导界面

    刚做完一个比赛项目,来写点以后能用着的东西–Android客户端的首次启动页面,而且这个以后复用的几率很大,也不怎么修改,特留下为以后准备,同时为初学者提供一个帮助. 实现思路是:用SharedPreferences保存一个首次登陆的信息,默认是true,进入MainActivity后对其经行赋flase保存,把GuideActivity作为软件的启动界面,如果是第一次启动,就初始化该activity,不是的话直接跳转到应用主界面activity,这里有些不合理,启动界面如果设置成一个每次app

随机推荐