qt启动动画 - CSDN
精华内容
参与话题
  • QT启动画面

    2018-10-18 13:46:59
    程序启动之前有时候需要一段时间来加载, 为了避免用户感觉程序死机卡顿的情况,特别加上开机界面,提醒用户程序正在执行中. int main(int argc, char *argv[]) { QApplication a(argc, argv); std::string cur_...

    程序启动之前有时候需要一段时间来加载, 为了避免用户感觉程序死机卡顿的情况,特别加上开机界面,提醒用户程序正在执行中.

    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        
        std::string cur_path("");
        if (!Logging::GetCurrentPath(cur_path))
        {
            std::cout << "Get current path failed!" << std::endl;
        }
        cur_path += std::string(project_name) + std::string("/");
    
        std::string  img_path += cur_path + std::string("/") + std::string("loginImage.png") ;
        QString str_tmp = QString::fromStdString(img_path);
        QSplashScreen *splash = new QSplashScreen;
        QPixmap pixmap(str_tmp);
        pixmap = pixmap.scaled(400,400,Qt::KeepAspectRatio);
        splash->setPixmap(pixmap);
        splash->setFont((QFont("Helvetica",20)));
        splash->show();
        Qt::Alignment topLeft = Qt::AlignLeft|Qt::AlignTop;
        splash->showMessage("系统启动中,请稍等...",topLeft,Qt::white);
        a.processEvents();
    
        MainDlg s(cur_path);
        s.show();
        splash->finish(&s);
        delete splash;
    
        return a.exec();
    }

     

    展开全文
  • Qt实现程序启动动画

    千次阅读 2019-09-25 16:45:45
    演示一个应用程序启动时,添加启动动画的小例子。 所谓启动动画,就是说当一个应用程序启动时,在展示主窗口之前,有可能会先去初始化一些运行...启动动画在很多软件中得到了应用,例如游戏加载画面,VS的启动画面等...

    演示一个应用程序启动时,添加启动动画的小例子。

    所谓启动动画,就是说当一个应用程序启动时,在展示主窗口之前,有可能会先去初始化一些运行环境,验证用户信息等前提工作。那么在这段空闲期程序的启动过程是没有用户界面的,而用户也无法得知程序的状态,所以就需要在这段空白时间中,向用户提供一个展示程序运行状态的窗口,来为用户提供积极的正反馈。

    启动动画在很多软件中得到了应用,例如游戏加载画面,VS的启动画面等。

    当然,强大的Qt也为我们提供了启动动画的相关接口,即QSplashScreen,下面代码是实现启动动画的一个简单例子:

    main.cpp

    #include <QApplication>
    #include <QSplashScreen>
    int main(int argc, char *argv[]){
        QApplication a(argc, argv);
        //创建启动动画类实例,使用资源文件splash.jpg作为展示图片    
    	QSplashScreen splash(QPixmap(":/splash.jpg"));
        splash.show();
        QWidget w;
        w.show();
        splash.finish(&w);
        return a.exec();
    }
    

    然后运行程序,出现启动动画效果,然后出现主窗口。

    但此时动画一闪而过,那是因为程序什么都没有做,为此再模拟一个读取数据库数据的代码,以加长启动时间。

    main.cpp

    #include <QApplication>
    #include <QSplashScreen>
    class DataBase{
    public:
        void readData()    {
    		for (int i = 0; i < 100000; ++i)        
    		{            
    			qDebug("reading data");
    		}    
    	}
    };
    int main(int argc, char *argv[]){    QApplication a(argc, argv);
        QSplashScreen splash(QPixmap(":/splash.jpg"));
        splash.show();
        DataBase db;
        db.readData();
        QWidget w;
        w.show();
        splash.finish(&w);
        return a.exec();
    }
    

    在正常情况下,仅仅提供一张图片对用户其实是不友善的,所以我们还可以添加一个进度条来标识应用程序的启动状态。添加一个SplashScreen类

    splashscreen.h

    #ifndef  SPLASHSCREEN_H 
    #define  SPLASHSCREEN_H  
    #include   < QSplashScreen > 
    #include   < QProgressBar >  
    
    namespace   Ui   {
     class   SplashScreen ;
     }  
     
    class   SplashScreen   :   public   QSplashScreen {
    	Q_OBJECT  
      public :
          explicit   SplashScreen ( QPixmap  pixmap ,   QWidget   * parent  =   0 );
          ~ SplashScreen ();
           //设置进度区间      
           void  setRange ( int  min ,   int  max );
      public  slots :
    	  //更新进度      
    	  void  updateProgress ( int  num );
          void  showProgressMessage ( int  total ,   const   QString &  msg );
      private :
    	  Ui :: SplashScreen   * ui ;
          QProgressBar   * bar ;  //进度条 
    };
      #endif   // SPLASHSCREEN_H
    

    splashscreen.cpp

    #include <QProgressBar>
    #include "splashscreen.h"
    #include "ui_splashscreen.h"
    
    SplashScreen::SplashScreen(QPixmap pixmap, QWidget *parent) :
        QSplashScreen(parent, pixmap),
        ui(new Ui::SplashScreen)
    {
    
        ui->setupUi(this);
        bar = new QProgressBar(this);
        //设置进度条的位置    
    	bar->setGeometry(0,pixmap.height()-50,pixmap.width(),30);
        resize(pixmap.size());
    }
    
    SplashScreen::~SplashScreen(){
        delete ui;
    }
    
    void SplashScreen::setRange(int min, int max){
        bar->setRange(min, max);
    }
    
    void SplashScreen::updateProgress(int num){
        bar->setValue(num);
    }
    
    void SplashScreen::showProgressMessage(int total, const QString &msg){
        bar->setRange(0, total);
        showMessage(msg);
    }
    

    database.h

    #ifndef  DATABASE_H 
    #define  DATABASE_H  
    #include   < QObject > 
    #include   < QColor >  
    class   DataBase   :   public   QObject {
         Q_OBJECT 
    public :
    	 explicit   DataBase ( QObject   * parent  =   0 );
          void  readData ();
    signals :
          void  readingData ( int  num );
          void  startReadData ( int  total ,   const   QString &  msg );
     };
      
    #endif   // DATABASE_H
    

    database.cpp

    #include "database.h"
    DataBase::DataBase(QObject *parent) : QObject(parent){
    }
    
    void DataBase::readData(){
        int max = 10000;
        emit startReadData(max, "is reading data");
        for (int i = 0; i < max; ++i)    {
            emit this->readingData(i);
            qDebug("reading data");
        }
    }
    

    main.cpp

    #include <QApplication>
    #include "splashscreen.h"
    #include "database.h"
    int main(int argc, char *argv[]){
        QApplication a(argc, argv);
        SplashScreen splash(QPixmap(":/splash.jpg"));
        splash.show();
        a.processEvents();
        DataBase db;
        QObject::connect(&db, SIGNAL(startReadData(int, QString)),
    					&splash, SLOT(showProgressMessage(int,QString))
    					);
        QObject::connect(&db, SIGNAL(readingData(int)),
    					&splash, SLOT(updateProgress(int))
    					);
        db.readData();
        QWidget w;
        w.show();
        splash.finish(&w);
        return a.exec();
    }
    

    运行效果:

    下载链接

    在这里插入图片描述

    展开全文
  • Qt-QSplashScreen-程序启动动画

    千次阅读 2018-02-26 22:11:17
    多数大型应用程序启动时可会在程序完全启动前显示一个启动画面,在程序完全启动后消失,程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动时同时了解产品的相关功能,这也是一种宣传方式。首先运行界面...

    多数大型应用程序启动时可会在程序完全启动前显示一个启动画面,在程序完全启动后消失,程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动时同时了解产品的相关功能,这也是一种宣传方式。


    首先运行界面界面



    一下为示例代码

    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();
    };
    
    #endif // MAINWINDOW_H

    mainwindow.cpp

    #include "mainwindow.h"
    #include <QTextEdit>
    #include <Windows.h>
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
    {
        setWindowTitle("程序启动画面示例");
        QTextEdit *edit = new QTextEdit;
        edit->setText("程序启动画面示例");
        setCentralWidget(edit);
        resize(600,450);
        Sleep(1000);
    }
    
    MainWindow::~MainWindow()
    {
    
    }

    最为关键的核心代码

    main.cpp

    #include "mainwindow.h"
    #include <QApplication>
    #include <QPixmap>
    #include <QSplashScreen>
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QPixmap pixmap("logo.jpg");
        QSplashScreen splash(pixmap);
        splash.show();
        a.processEvents();
    
        MainWindow w;
        w.show();
    
        splash.finish(&w);
        return a.exec();
    }


    工程目录:https://gitee.com/DreamLife-Technology_DreamLife/SplashScreen


    展开全文
  • qt程序启动播放动画

    2019-01-12 04:09:24
    qt程序启动播放动画 编辑删除转载 2016-01...标签:qt启动动画 1、播放动画 1 QAxWidget *flash = new QAxWidget(0, 0); //QAxWidget使用的是ActiveX插件 2 3 flash-&gt;resize(800, 600); //...

    qt程序启动播放动画

    编辑删除转载 2016-01-20 10:23:11

    1、播放动画

     1 QAxWidget *flash = new QAxWidget(0, 0);      //QAxWidget使用的是ActiveX插件
     2 
     3 flash->resize(800, 600);                    //设置该控件的初始大小
     4 
     5 flash->setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}")); //设定控制器
     6 
     7 flash->dynamicCall("LoadMovie(long,string)", 0, "D:\\flash1.swf");   //
     8 
     9 flash->setWindowFlags(Qt::FramelessWindowHint);   //去除边框
    10 
    11 flash->show();
    12 
    13 QTime t;
    14 
    15 t.start();
    16 
    17 while (t.elapsed() < 5000)
    18 
    19 {
    20     QApplication::processEvents();
    21 }
    22 flash->close();
    View Code

    flash->close();

    2、图+消息提示

     1 QApplication app(argc, argv);
     2 
     3 QPixmap pixmap(":/splash.png");
     4 
     5 QSplashScreen splash(pixmap);
     6 
     7 splash.show();
     8 
     9 splash.showMessage(QStringLiteral("正在初始化..."));//消息提示
    10 
    11 app.processEvents();
    12 
    13     ...
    14 
    15 QMainWindow window;
    16 
    17 window.show();
    18 
    19 splash.finish(&window);
    View Code

     

    展开全文
  • 很多大型应用程序在启动时所需时间都比较长,因此在等待的这段时间我们可以显示一个启动画面,这样就显得更加人性化了。 最初在书上看到的启动画面是一个静态的图片,比较单调。后来在网上找到了一个显示动态图的...
  • Qt-----给Qt程序添加启动动画

    千次阅读 多人点赞 2011-09-27 07:37:20
    一些应用程序启动很慢时,一般会在启动时...给Qt应用程序加一个启动画面很简单,需要使用的类是QSplashScreen,在窗口没有显示之前,QSplashScreen显示一个图片,他还可以在图片上显示文字信息提示用户当前程序初始化
  • QT 程序启动动画

    千次阅读 2019-05-06 09:48:33
    简述 我们日常用的很多软件都有启动动画,比如Visual Studio和PyCharm在打开软件之前都会有一个加载各种组件的过程。...QT提供了QSplashScreen这个类来实现启动动画的效果。 效果 代码之路 最基本的...
  • Qt软件启动画面

    2019-11-17 12:53:48
    QPixmap pixmap(":/image/splash.png"); QSplashScreen splash(pixmap); splash.setDisabled(true);...splash.showMessage(QObject::tr("Version: 3.0"),Qt::AlignRight|Qt::AlignJustify,Qt::dar...
  • Qt开发】实现Qt程序启动画面

    万次阅读 2012-12-24 20:03:21
    如果一个程序的启动时间较长(例如需要提前加载的数据量比较...在Qt应用程序中,可以通过QSplashScreen类来实现启动画面。下面是一个简单的例子,实现了加载splash图片,并在显示画面的同时预加载了程序的一些模块数据。
  • QT QSplashScreen 设置启动界面

    千次阅读 2018-05-10 20:09:30
    启动程序时,有时候在程序启动的时候需要做长时间的准备工作,这时候为了增加用户体验,我们需要在启动过程中显示一幅图片,动画和一些提示性文字来告诉用户现在正在启动,以及启动到什么阶段了。增加了程序的友好...
  • Qt本来自带QSplashScreen类,这个简单的类提供了个简单的方法就是在程序启动前提供一个图片让其先启动,等我们主程序启动后这个启动页面消失。 可以看到它的普遍使用方法: int main(int argc, char *argv[]) { ...
  • Qt学习16——程序启动画面QSplashScreen

    千次阅读 2017-07-03 11:12:39
    在一些大型应用程序启动时,通常会在程序完全运行前显示一个启动画面启动画面可用于显示产品信息、程序功能、广告等,同时也可以在后台完成一些程序的初始化工作。
  • QT5 设置开机动态启动画面

    千次阅读 2018-01-21 20:44:13
    做个笔记,方便以后直接拿来...前几天突然想怎么能给自己的程序加个启动画面,就在网上查了一下,停留在搜索页面时,就看到满屏的 QSplashScreen ,就在编辑器上按下了F1,很轻易的就在类介绍里看到了这样的示例代码:i
  • Qt中开机启动画面

    千次阅读 2015-10-30 17:44:02
    启动一秒之内画面: 一秒之后的运行效果: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include class MainWindow : public QMainWindow { Q_OBJECT ...
  • PyQt5编程(5):启动界面

    千次阅读 2018-10-05 20:26:30
    PyQt中的QSplashScreen类提供了在程序启动过程中显示的启动画面的功能当运行程序时,在显示屏的中央出现一个启动画面,经过一段时间,应用程序完成初始化工作后,启动画面隐去,出现程序的主窗口界面的功能。...
  • 多数大型应用程序启动时都会在程序完全启动前显示一个启动画面,在程序完全启动后消失。 本节主要介绍在Linux系统中如何实现这一功能。 首先是mainwindow.h文件,自动生成的代码如下: #ifndef MAINWINDOW_H #define...
  • QT 添加启动画面

    千次阅读 2010-08-23 23:05:00
    Qt应用程序加一个启动画面很简单,需要使用的类是QSplashScreen。在窗口没有显示之前,QSplashScreen显示一个图片,他还可以在图片上显示文字信息提示用户当前程序初始化的进度。一般情况下,启动画面代码在main()...
  • Qt启动界面上添加进度条

    千次阅读 2012-05-10 00:54:05
    主要是基于qsplashscreen写一个扩展类, 不罗嗦,直接看源码,关键部位有注释。 扩展类头文件 #ifndef __MYSPLASHSCREEN_H #define __MYSPLASHSCREEN_H #include class MySplashScreen: public ...private:
  • Qt For Android 之启动

    千次阅读 2016-02-14 14:23:43
    Qt For Android 之启动页SplashScreen
  • Qt 之等待提示框(QMovie)

    万次阅读 2018-05-30 10:29:18
    简述关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很...源码通过使用QMovie来设置动画、可以调用setSpeed()设置动画速度、start()启动动画、stop()停止动画等。Q
1 2 3 4 5 ... 20
收藏数 5,493
精华内容 2,197
热门标签
关键字:

qt启动动画