QT 实现弹出提示框定时消失

#include "dialog.h"
#include "ui_dialog.h"
#include 
#include 
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog),
    label(new QLabel(this))
{
    ui->setupUi(this);
}
Dialog::~Dialog()
{
    delete ui;
}
void Dialog::on_toolButton_clicked()
{
    showFinished();
    QTimer::singleShot(3000, this, SLOT(slotHideFinishedLabel()));  // 这里是一个3秒定时器, 且只执行一次。
}
//下面这是提示框隐藏
void Dialog::slotHideFinishedLabel()
{
    label->hide();
    this->close();
}
//下面这个红色提示框显示
void Dialog::showFinished()
{
    QRect rect = geometry();
    label->setMaximumWidth(500);
    label->setMaximumHeight(50);
    label->setMinimumWidth(500);
    label->setMinimumHeight(50);
    QFont font;
    font.setPointSize(25);
    label->setFont(font);
    label->setStyleSheet(QLatin1String("color:red;"));
    label->setText("The answer end of time!");
    label->setGeometry(int((rect.width()-label->width())/2), int((rect.height()-label->height())/2), label->width(), label->height());
    label->show();
}

你可能感兴趣的:(Qt相关技术)