首页 > 代码库 > Qt中启动界面的设计
Qt中启动界面的设计
越来越发现Qt的功能十分强大,真的是越来越喜欢它了。对于比较大的项目来说,程序启动的时候需要加载很多的模块和初始化操作,有时候可能需要很长时间,这样一来,对于用户来说可能就会有点等不及,感到不好,程序怎么起了这么长的时间。为此,很多的大型程序都做了启动界面来掩盖模块的加载。
说起启动界面的加载,主要有三种:静态图片,动态图片(gif),动画(swf)。下面就这几种做一个简单的学习。
一、静态图片的加载
静态图片的加载对于第一次学习这个来说也是非常简单的一个,基本思想就是现实一张图片,然后延时,给人的感觉就像是出现了启动界面。由于图片不好截图,就直接上代码了。
<strong> QSplashScreen splash(QPixmap(":/images/splash.png")); splash.setDisabled(true);//进制用户的输入事件相应 splash.show(); a.processEvents(); splash.showMessage(QObject::tr("数据正在加载中……"),Qt::AlignLeft |Qt::AlignBottom,Qt::black); for(int i = 0;i<200;i++) { } splash.finish(mainwow); a.exec();</strong>QsplanshScreen类是Qt自带的,需要添加头文件。此时需要将自己准备好的图片添加到资源文件里面,我的这里资源名称是images,关于建立资源文件,很简单,主需要点击“文件”----“新建文件或工程”----“Qt资源文件”,然后给个名字,将自己的图片添加到里面就行了。这里就不过多的说了。
Qt::AlignBottom,Qt::black 是现实一段提示信息,提醒用户程序正在加载中,可以设置它的字体,颜色和大小等信息。
二、动态图片的加载
首先就要准备一张动态图片了,可以自己制作,也可以下载。可以在线制作的,这个最简单了,制作一张自己喜欢的。
<strong><span style="font-size:18px;"> QMovie *move = new QMovie(":/images/splash.gif"); QLabel *label = new QLabel("",0); label->setGeometry(510,300,450,100); label->setMovie(move); move->start(); label->setWindowFlags(Qt::FramelessWindowHint);//隐藏边框 label->show(); QTime t; t.start(); while(t.elapsed() < 2000) { a.processEvents(); }</span></strong>展示我的一张开始界面,由于截图只能是静态的,我的启动时时动态的。
我的界面显示的是一张动态图片,自己制作的,就简单的做个一个。代码应该很容易看懂,就不做过多的解释。
三、动画的加载
动画的加载相对来说有点难度,需要插件,其实 也就是Qt库中的QAxWidget类。还是直接上代码
<strong><span style="font-size:18px;"> QAxWidget *flash = new QAxWidget(0,0); //QAxWidget使用的是ActiveX插件 flash->resize(600,600); //设置该控件的初始大小 flash->setControl(QString::fromUtf8("{d27cdb6e-ae6d-11cf-96b8-444553540000}")); //设定控制器 flash->dynamicCall("LoadMovie(long,string)",0,":images/flash1.swf"); // flash->setWindowFlags(Qt::FramelessWindowHint); //去除边框 flash.show(); QTime t; t.start(); while(t.elapsed()<5000) { QApplication::processEvents(); } flash.close();</span></strong>
代码看起来很清晰易懂。不用做过多的解释。
Qt中启动界面的设计
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。