文档章节

qt中使用启动画面

首席吹牛官
 首席吹牛官
发布于 2015/05/22 12:58
字数 460
阅读 31
收藏 0

                    在程序打开的时候,启动画面是很正常的。

                    对于这个qt提供了QSplashScreen类,可是我在使用过程中,他总是一闪而过,不是我们想要的。我们使用启动画面,如果没有模块检测,那我们只是想它显示几秒钟而已。下面是我的办法,继承QSplashScreen,在加个定时器就行了。

#ifndef SPLASHSCREEN_H

#define SPLASHSCREEN_H
#include <QSplashScreen>
#include <QTimer>
class splashScreen : public QSplashScreen
{
    Q_OBJECT
public:
    explicit splashScreen(const QPixmap & pixmap = QPixmap(), Qt::WindowFlags f = 0);
   // splashScreen(QWidget * parent, const QPixmap & pixmap = QPixmap(), Qt::WindowFlags f = 0);
    void setShowSecond(int _second);//设置启动画面的显现时长,单位是秒,不是微秒
    void startTimer()  {show();timer.start();}//定时器开始工作
signals:
    void timeOver();//达到规定的显示时长发出此信号
public slots:
protected slots:
    void stopTimer();//关闭定时器
private:
    ~splashScreen(){}
    QTimer timer;//显示时长定时器
};
#endif // SPLASHSCREEN_H
#include "splashscreen.h"
splashScreen::splashScreen(const QPixmap &pixmap, Qt::WindowFlags f) :
    QSplashScreen(pixmap,f)
{
}
//splashScreen::splashScreen(QWidget * parent, const QPixmap & pixmap = QPixmap(), Qt::WindowFlags f = 0):
//    QSplashScreen(parent, pixmap, f)
//{
//}
void splashScreen::setShowSecond(int _second)
{
    timer.setInterval(_second*1000);
    connect(&timer,SIGNAL(timeout()),this,SLOT(stopTimer()));
}
void splashScreen::stopTimer()
{
    timer.stop();
    emit timeOver();
    close();
    deleteLater();//此处是特意添加,只能在一次使用,且只能是在heap区使用
}
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPixmap pix(":/picture/splashScreen.jpg");
    splashScreen *ps = new splashScreen(pix);
    ps->setShowSecond(3);
    ps->startTimer();
    MainWindow w;
    QObject::connect(ps,SIGNAL(timeOver()),&w,SLOT(show()));
    w.resize(QApplication::desktop()->size()*0.9);//以设备的显示器件的大小来确定主界面的大小
    return a.exec();
}
为什么我想在启动画面结束之后之后直接释放,因为它就是这时候有用,我不想在程序运行结束的时候在释放,资源是宝贵的。

还有就是默认的鼠标点击操作是hide()。如果你不想不小心点了鼠标画面消失,并且主界面还没有出来,还是重写void mousePressEvent(QMousePressEvent *),函数体为空就行。

© 著作权归作者所有

首席吹牛官
粉丝 9
博文 368
码字总数 191938
作品 0
闵行
程序员
私信 提问
QT 添加启动画面

许多应用程序在启动时显示一个画面。在程序启动很慢时,程序员用这种方法可以让启动时间感觉不那么长,还有用这个画面满足市场的一些要求。给Qt应用程序加一个启动画面很简单,需要使用的类是...

晨曦之光
2012/04/13
993
0
跨平台股票软件--tcstock

使用Qt开发的跨平台股票软件,运用 Qt 的 GraphicsView 功能,提供一个高互动性的K线显示界面。 目前只有部分界面雏形,完善中。 目前项目在 Windows 下的画面: Linux 下的画面:...

匿名
2010/09/09
6.7K
1
Qt Creator:跨平台 IDE

Qt Creator是全新跨平台集成开发环境 (IDE),为 Qt 开发人员的需求量身定制。由于捆绑了最新 Qt 库二进制软件包和附加的开发工具,并作为 Qt SDK, 的一部分,Qt Creator 在单独的安装程序内提...

文艺小青年
2017/07/06
0
0
Qt编写安防视频监控系统(界面很漂亮)

一、前言 视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸...

飞扬青云
05/23
295
3
Qt编写安防视频监控系统9-自动隐藏光标

一、前言 这个效果的灵感来自于大屏电子看板系统,在很多系统中尤其是上了大屏的时候,其实在用户不在操作的时候,是很不希望看到那个鼠标箭头指针的,只有当用户操作的时候才显示出来,这个...

飞扬青云
05/31
17
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
44
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部