• 5666阅读
  • 9回复

关于Qt欢迎界面(QSplashScreem) [复制链接]

上一主题 下一主题
离线shifeng
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-27
如把Qt的启动欢迎界面做成动画的!
离线zjmmlab

只看该作者 1楼 发表于: 2014-06-27
很多种方法吧; 比如在QSplashScreen里面放一个QQuickWidget,然后写qml就是了。
离线kimtaikee

只看该作者 2楼 发表于: 2014-06-27
不是有QMovie吗,播放完动画或者视频接着进入主界面。

离线shifeng

只看该作者 3楼 发表于: 2014-06-27
回 kimtaikee 的帖子
kimtaikee:不是有QMovie吗,播放完动画或者视频接着进入主界面。 (2014-06-27 11:16) 

这个方法不行,我试过了,主界面没显示之前,QMoive的动画不会播放,只有主界面显示,动画才开始播放!
离线shifeng

只看该作者 4楼 发表于: 2014-06-27
回 zjmmlab 的帖子
zjmmlab:很多种方法吧; 比如在QSplashScreen里面放一个QQuickWidget,然后写qml就是了。 (2014-06-27 10:16) 

谢谢!能我提供几种思路吗?说老实话,之前没有用过QML
离线shifeng

只看该作者 5楼 发表于: 2014-06-27
回 shifeng 的帖子
shifeng:这个方法不行,我试过了,主界面没显示之前,QMoive的动画不会播放,只有主界面显示,动画才开始播放! (2014-06-27 11:46) 

问题解决了!让主程序Sleep几秒就可以了!
离线shifeng

只看该作者 6楼 发表于: 2014-06-27
唉!问题终于解决了!
把代码贴出来吧!

QMovie *movie = new QMoive(":1.gif");
QLabel *label = new QLabel("", 0);
label->setMovie(movie);
movie->start();
lable->setWindowFlags(Qt::FramelessWindowHint);
lable->show();
MainWidget  main_widget;
QElapsedTimer t;
t.start();
while(t.elasped() < 4000)
{
         QCoreApplication::processEvents();
}
main_widget.show();
label->close();
delete movie;
delete label;
离线dbzhang800

只看该作者 7楼 发表于: 2014-06-27
这种做法有些怪异,有可能你吧splash的用途搞错了。

你可以看看 下面帖子的讨论

http://www.qtcn.org/bbs/read-htm-tid-56259.html


如果你的程序启动耗时,想在这段时间,显示一个splash,你的代码是实现不了这个目的的。如果程序启动很快,那就不需要splash了。
离线shifeng

只看该作者 8楼 发表于: 2014-06-27
回 dbzhang800 的帖子
dbzhang800:这种做法有些怪异,有可能你吧splash的用途搞错了。
你可以看看 下面帖子的讨论
http://www.qtcn.org/bbs/read-htm-tid-56259.html
....... (2014-06-27 15:33) 

谢谢,版主!我刚刚看了那个帖子,其实要的是效果!
唉!能问一下嘛,动态欢迎界面有好的方法实现吗?
离线dbzhang800

只看该作者 9楼 发表于: 2014-06-27
回 shifeng 的帖子
shifeng:谢谢,版主!我刚刚看了那个帖子,其实要的是效果!
唉!能问一下嘛,动态欢迎界面有好的方法实现吗? (2014-06-27 16:00) 

这样的话,你需要的就已经不是splash了。

直接创建一个普通Widget窗体就完了,在里面想干嘛干嘛。干完想干的,再显示另一个widget窗体。
快速回复
限100 字节
 
上一个 下一个