怎么实现QLabel或者QLineEdit得到焦点时背景色闪烁
本人最近在做的界面,有些输入控件,需要友好的显示给用户,达到的效果是:
用户点击某个QLabel或者QLineEdit之后,QLabel/QLineEdit就会背景色开始闪烁,比如白色红色交替闪烁,提示用户输入,这个要怎么实现呢?想了很久,我个人没想到好的解决办法,不晓得各位有啥方法呢?
我目前只实现到重写了QLineEdit的focusInEvent(QFocusEvent *e)方法,给QLineEdit背景色改变下,但是效果是得到焦点变色,并没有闪烁,现在就是想怎么能获得焦点后两个背景颜色交替闪烁起来呢?
更深入一点的是,如果用户输入的数据偏小或者有问题,输入的内容也闪烁,这个都要如何去实现?
有人可以提供些思路或者好办法么?谢谢!
[解决办法]
TS,使用定时器在事件里面完成背景色改变
[解决办法]
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("");}