浪客的小猪窝

无他,唯手熟尔!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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;
}
========================================================================

posted on 2012-05-09 16:17  BlackKylin  阅读(4494)  评论(0)    收藏  举报