<div green?="">场景:<div green?=""> 许多应用程序在启动时显示一个画面,在程序启动到第一个画面显示需要一段漫长的时间,导致用户感觉到点就了该应用是否不能运行的错觉。<div green?="">方案:<div green?=""> 给Qt应用程序加一个启动画面,程序员用这种方法可以让启动时间感觉不那么长,还有用这个画面满足市场的一些要求。需要使用的类是QSplashScreen。<div green?="">解决方案1:<div green?=""> 本文介绍的是Qt实现启动界面实例,使用到了Qt的类。要实现简单启动界面的话,其实只需要创建一个元件dialog。请看内容。 本文介绍的是 Qt实现 启动界面实例,使用到了 Qt的类。如何用 Qt做 启动界面,说起来也很简单。其实只需要创建一个元件dialog,然后插入一张图片背景,用一个定时器,使其在主窗口显式之前显示规定的一段时间。 下面这里有一段代码: - int main(int argc, char *argv[])
{ QApplication app(argc, argv); QSplashScreen *splash = new QSplashScreen; splash->setPixmap(QPixmap(":/images/splash.png")); splash->show(); Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop; splash->showMessage(QObject::tr("Setting up the main window..."), topRight, Qt::white); MainWindow mainWin; splash->showMessage(QObject::tr("Loading modules..."), topRight, Qt::white); loadModules(); splash->showMessage(QObject::tr("Establishing connections..."), topRight, Qt::white); establishConnections(); mainWin.show(); splash->finish(&mainWin); delete splash; return app.exec(); }
解决方案2:(此方案对于启动时间过长不是很好) 介绍的是 Qt实现 启动界面实例,使用到了 Qt的类。如何用 Qt做 启动界面,说起来也很简单。其实只需要创建一个元件dialog,然后插入一张图片背景,用一个定时器,使其在主窗口显式之前显示规定的一段时间。 下面这里有一段代码: - int main(int argc, char *argv[])
- {
- QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
- QApplication a(argc, argv);
- QDialog dialog; //定义一个启动显示窗口
- dialog.setStyleSheet(QString::fromUtf8("background-image: url(:/images/11.PNG);\n" //插入启动窗口的图形界面
- "color: rgb(0, 255, 0);\n"
- "font: 75 16pt \"\345\256\213\344\275\223\";"));
- dialog.setGeometry(QRect(0, 0, 500, 375)); / /设置启动窗口的坐标及尺寸大小
- dialog.setWindowFlags(Qt::FramelessWindowHint);
- Widget w;
- QTimer timer; / /定时
- QObject::connect(&timer, SIGNAL(timeout()), &w, SLOT(showNormal()));
- QObject::connect(&timer, SIGNAL(timeout()), &dialog, SLOT(accept()));
- timer.start(5000); / /设置时间
- dialog.exec(); //保证在主窗口显示之前启动界面退出
- w.showNormal(); //启动界面结束后显示主窗口
- return a.exec();
- }
启动界面的坐标调整非常重要,一般的 启动界面窗口都显示在 界面中央,dialog.setGeometry(QRect(100,10 0, 500, 375))是调整 启动界面显示坐标位和显示窗口大小的语句。不过不知为什么,将程序移到开发板去后就不行了,不管前面两个坐标位的参数如何改变,都只能在边角显示 启动界面。按我的理解,坐标的定制应该有个基准,这可能就是 启动界面为什么总不能在开发板上移位的原因,不过为什么能在 windows下实现移位,我就不得而知,可能是系统比开发板全面,已经设置好了也不是不可能的。 小结: Qt实现 启动界面实例的聂荣介绍完了,我认为难点在于坐标,好好把握这个知识点,也许会做的更好。左后希望本篇文章对你有帮助!!!
|