`
duoerbasilu
  • 浏览: 1487166 次
文章分类
社区版块
存档分类
最新评论

实现Qt程序启动画面

 
阅读更多

如果一个程序的启动时间较长(例如需要提前加载的数据量比较大),那么一般来说程序会有一个启动画面。这样既让用户看到程序正在启动而不是简单乏味的的等待,同时也显示了程序的一些有用信息,例如程序logo, 功能模块或产品信息等。

在Qt应用程序中,可以通过QSplashScreen类来实现启动画面。下面是一个简单的例子,实现了加载splash图片,并在显示画面的同时预加载了程序的一些模块数据。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    // 设置程序的默认字符编码
    QTextCodec *tc=QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForTr(tc);

    //加载并显示启动画面
    QSplashScreen splash(QPixmap(":/images/images/splash.png"));
    splash.setDisabled(true); //禁用用户的输入事件响应
    splash.show();

    splash.showMessage(QObject::tr("内存数据库管理器.正在启动中...."),
    Qt::AlignLeft|Qt::AlignBottom,Qt::green);
    //同时创建主视图对象
    MainWindow w;

    splash.showMessage(QObject::tr("加载模块数据...."),Qt::AlignLeft|Qt::AlignBottom,Qt::green);
    //预加载程序数据;
    loadModulesData();
    //程序数据加载完毕后, 显示主视图,并结束启动画面
    w.show();
    splash.finish(&w);

    return a.exec();
}

如果想自定义启动画面的存在时间的话,可以通过QTime或QElapsedTimer类来实现程序的等待。如下所示,程序在空循环1s:

QElapsedTimer t;
t.start();
while(t.elapsed()<1000)
{
    QCoreApplication::processEvents();
}

(Qt并没有提供跨平台的sleep函数,如果要用sleep函数可以使用QTest类提供的qsleep函数,而实际上QTest的实质也是用到了QElapsedTimer。)



分享到:
评论

相关推荐

    QT实现程序启动界面

    使用QProcess实现的程序启动界面,支持播放gif动画,支持静态图片,支持多张图片切换,程序启动后自动退出

    利用Qt实现程序启动画面

    利用Qt程序启动画面的实现(QSplashScreen)

    QtService 实现Qt后台服务程序

    本文使用QtService演示如何实现一个windows下的后台进程,可用于一些简单的windows服务程序中。 博客介绍:https://luoyayun361.blog.csdn.net/article/details/120655011?spm=1001.2014.3001.5502

    Qt5开发及实例-CH408.rar,Qt5程序启动画面(QSplashScreen)的使用方法代码

    Qt5开发及实例,实例CH408,程序启动画面(QSplashScreen)的使用方法。当运行程序时,在显示屏的中央出现一个启动画面,经过一段时间,应用程序完成初始化工作后,启动画面隐去,出现程序的主窗口界面。 实现方法如下...

    用qt实现的程序守护进程程序

    主要功能: 可设置检测的程序名称。 可设置udp通信端口。 可设置超时次数。 自动记录已重启次数。 自动记录最后一次重启时间。...可重置当前重启次数和最后重启时间。...提供界面设置程序名称已经开启和暂停服务。

    程序启动画面gif动图的实现.zip

    程序启动画面gif动图的实现,详细内容可以参考:https://blog.csdn.net/didi_ya/article/details/122177650

    使用QProcess启动并嵌入带界面应用程序

    在做系统集成框架软件时,经常遇到需要将已有程序的界面嵌入到统一框架软件的情形,该示例程序演示了在Qt5平台下面,使用QProcess启动并嵌入带界面应用程序的方法。该方法在Windows、Linux等操作系统下测试通过,...

    Qt之程序最小化托盘显示及操作

    对于GUI程序,如果想要实现当最小化时,程序从任务栏消失,在系统托盘显示一个图标,表示此程序,并能在托盘内通过双击或者菜单使程序界面恢复。

    基于Qt设计的网络聊天软件(界面仿QQ,支持群聊、私聊).zip

    这是基于Qt设计的网络聊天软件,资料包里包含了Qt的源码、也带了一份可执行文件,设计文档说明,涉及的知识点文档。 源码分为两份,一份服务器代码,一份客户端代码。 运行时,需要先运行服务器,再启动客户端即可...

    QT实现Splash与登录界面的应用程序示例

    一般的大型应用程序在启动时会显示一个启动画面,即splash窗口。splash窗口是一个无 边对话框,一般显示一个图片,展示软件的信息。splash窗口显示时,程序在后台做一些比较耗时的启动准备工作,splash窗口显示一段...

    QT平台上的动态可定制界面设计

    引入了一种在QT平台上设计动态定制界面的方案:通过XML文档将所有的界面元素与信息存储起来,系统启动时读取不同的XML文档,从而实现加载界面的切换。基于此方案,可以预先由界面美工人员设计不同风格的界面,并采用...

    Qt编写守护进程

    本篇文章提供一个软件实现守护进程的办法,原理就是udp通信,单独写个守护进程程序,专门负责检测主程序是否存在,不存在则启动。主程序只需要启动live类监听端口,收到hello就回复ok就行。 为了使得兼容任意程序,...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    先可能显示“没有找到mingwm10.dll,因此这个应用程序未能启动。重新安装 应用程序可能会修复此问题。”表示缺少mingwm10.dll 文件。 解决这个问题我们可以将相应的.dll 文件放到系统 中。在Qt Creator 的安装目录的...

    精通qt4编程(源代码)

    \ 第11章 事件机制 李立夏介绍了Qt的事件处理模型,详细介绍了在Qt程序设计中处理事件的五种方法,并讨论了如何利用Qt事件机制加快用户界面响应速度。 283 \ 第12章 数据库 李立夏介绍了Qt的数据库处理,重点介绍了...

    精通Qt4编程(第二版)源代码

    \1.1 第一个Qt程序 2 \1.1.1 建立主程序 2 \1.1.2 建立工程 3 \1.1.3 编译/运行第一个Qt应用程序 8 \1.1.4 第一个Qt程序的代码分析 8 \1.2 使用Qt布局管理器 11 \1.3 关联操作 12 \1.4 小结 13 \第2章 ...

    QT创建类似360界面管理各个服务、程序、文件的管理界面,并可最小化到任务托盘,支持win/linux

    QT创建类似360界面管理各个服务、程序、文件的管理界面,并可最小化到任务托盘,程序启动时读取配置文件(各个需要管理的服务、程序、文件配置信息),生成管理图标列表,并进行最小化菜单设计。在管理界面上,可以...

    QT 写的spreadsheet编辑器

    这个程序的运行环境是Ubuntu 10.10 下安装的QT 4.4 Creater编程软件,下编译通过的,除实现了可以打开多个窗口和启动画面以外。还增加了,点击右键时,可以选择删除所选单元内容,新建和保存文档,对所选项排序,和...

    StartupPro.zip

    Qt5 QSplashScreen实现程序启动画面和动画(注意:UI线程不能堵塞)

    C++ Qt 创建多线程,控制6组ABB输出到UI界面上,使用moveToThread方式,配合互斥锁条件变量代码示例

    在Qt程序中有2条线程,可分别输出A、B字符,每条线程只能启动一次,想办法控制输出顺序为:ABBABBABBABBABBABB共六组,输出到Ui界面上,用标签来显示即可 分析: 创建线程倒是不难,使用Qt来创建的话,可以考虑...

Global site tag (gtag.js) - Google Analytics