QT 实现在一个模块中间显示一个红色提示框,3秒后消失

#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学习之路)