如何用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下实现移位,我就不得而知,可能是系统比开发板全面,已经设置好了也不是不可能的。