QT 中 界面中消息的停留时间解决方案
要实现的理想效果是:
程序运行开始时界面中没有文字显示,然后有文字显示,文字停留几秒钟,然后文字消失。
首先在UI中拖入一个 frame ,在frame 中拖入一个 label。
========================================================================
在类的声明中声明
QTimer *timer;
========================================================================
可以在构造函数中写如下代码
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(hideMsg()));
ui.frame->hide(); //初始将frame隐藏,就将frame中的控件隐藏了
========================================================================
在相应函数中显示frame内容,同时出发计时器
ui.frame->show();
QFont font;
font.setPointSize(12);
ui.label->setFont(font); //设置label中字体大小
ui.label->setWordWrap(true); //设置label中字符换行
ui.label->setText(returnMsg);
timer->start(3000); //出发计时器,3秒过后将会触发hideMsg()槽
========================================================================
void A::hideMsg()
{//槽函数--隐藏frame中的内容并停止计时器
ui.frame->hide();
timer->stop(); //停止计时器
}
========================================================================
最后别忘记在析构函数中释放相应的内存
if (NULL != timer)
{
delete timer;
timer = NULL;
}
========================================================================