不知道自己是码农的二流码农!
分类: C/C++
2012-09-10 18:10:08
Qt创建程序启动画面
文档名称 |
Qt创建程序启动画面 |
创建时间 |
2012-9-10 |
修改时间 |
2012-9-10 |
创建人 |
Baifx |
简介(收获) |
QSplashScreen的使用 |
QSplashScreen类提供了在程序启动过程中显示启动画面的功能。本实例实现一个出现程序启动画面的例子。
main.cpp具体代码如下:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPixmap pixmap( ".//Resources//splash.jpg" );
QSplashScreen splash( pixmap );
splash.show();
a.processEvents();
StartDlg w;
w.show();
splash.finish( &w );
return a.exec();
}
启动画面主要在main()函数中实现。
创建一个QPixmap对象,splash.jpg为启动图片;利用QPixmap对象创建一个QSplashScreen对象;调用show()函数显示此启动图片;调用processEvents()使程序再显示启动界面的同时仍能响应鼠标等其他事件;正常创建主窗体对象,并调用show()函数显示;调用QSplashScreen类的finish()函数,表示在主窗体对象初始化(构造函数)完成后,结束启动画面;然后执行主程序exec()函数。
本例中为了使程序初始化时间加长以显示启动画面,在主窗体的构造函数中调用QTest::qWait()函数(参见《在VS2010中开发Qt程序使用QTest遇到error LNK2019》),是主窗口程序在初始化时休眠几秒钟,具体代码如下:
StartDlg::StartDlg(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
setWindowTitle( tr( "Splash Example" ) );
QTextEdit * pEdit = new QTextEdit();
pEdit->setText( tr( "Splash example!" ) );
setCentralWidget( pEdit );
resize( 600, 450 );
QTest::qSleep( 3000 );
}