当前位置: 代码迷 >> QT开发 >> 如何实现QLabel或者QLineEdit得到焦点时背景色闪烁
  详细解决方案

如何实现QLabel或者QLineEdit得到焦点时背景色闪烁

热度:38   发布时间:2016-04-25 04:25:12.0
怎么实现QLabel或者QLineEdit得到焦点时背景色闪烁
本人最近在做的界面,有些输入控件,需要友好的显示给用户,达到的效果是:

用户点击某个QLabel或者QLineEdit之后,QLabel/QLineEdit就会背景色开始闪烁,比如白色红色交替闪烁,提示用户输入,这个要怎么实现呢?想了很久,我个人没想到好的解决办法,不晓得各位有啥方法呢?

我目前只实现到重写了QLineEdit的focusInEvent(QFocusEvent *e)方法,给QLineEdit背景色改变下,但是效果是得到焦点变色,并没有闪烁,现在就是想怎么能获得焦点后两个背景颜色交替闪烁起来呢?

更深入一点的是,如果用户输入的数据偏小或者有问题,输入的内容也闪烁,这个都要如何去实现?

有人可以提供些思路或者好办法么?谢谢!

------解决方案--------------------
TS,使用定时器在事件里面完成背景色改变
------解决方案--------------------
C/C++ code
CLineEdit::CLineEdit(QWidget *parent)    : QLineEdit(parent){    m_timer.setInterval(400);    connect(&m_timer, SIGNAL(timeout()), this, SLOT(onTimer()));}void CLineEdit::onTimer(){    setStyleSheet(styleSheet().isEmpty() ? "background-color: red" : "");}void CLineEdit::focusInEvent(QFocusEvent *){    m_timer.start();}void CLineEdit::focusOutEvent(QFocusEvent *){    m_timer.stop();    setStyleSheet("");}