很多大型软件都有启动界面,把程序的部分初始化后,再显示主界面。
Qt如何实现该功能呢,例如我们在main.cpp实例化启动类,然后显示,sleep(3000), 再close窗口,这种思路目测可以,但是编写代码后发现启动界面后,控件无法显示,图片无法刷新等。那么如何实现呢?
这里我提供一种方法,用定时器来实现该需求。
添加一个QDialog, 作为启动界面,头文件如下:
#pragma once
#include <QDialog>
#include "ui_WelcomeUI.h"
#include <QTimer>
/*
软件的欢迎界面
3秒后自动消失,显示主界面
*/
class WelcomeUI : public QDialog
{
Q_OBJECT
public:
WelcomeUI(QWidget *parent = Q_NULLPTR);
~WelcomeUI();
//自定义方法,启动定时器
void StartTimer();
private:
Ui::WelcomeUI ui;
QTimer *m_pTimer;
};
cpp文件
#include "WelcomeUI.h"
WelcomeUI::WelcomeUI(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHi