如何使`QLineEdit`闪烁

时间:2014-07-06 15:56:48

标签: qt

我有一个设置'我的申请中的对话框。对话框中有QLineEdit来设置参数。该参数应该是一个数字。当用户在QLineEdit中键入文字并按Enter或按其他小部件时,我会从QLineEdit读取文字,如果文字不是数字,我会将之前的号码放在QLineEdit中。现在,如果用户在QLineEdit中键入了错误的文本,我希望QLineEdit闪烁(如用户按下其他组件时模态对话框闪烁)3秒钟。我该怎么办?

2 个答案:

答案 0 :(得分:1)

最好的办法是创建一个继承自QLineEdit

的自定义窗口小部件

但是,实现您想要做的另一种快速方法是将编辑连接到使QTimer启动的插槽。然后将timeout()信号连接到更改QLineEdit样式表的插槽。 无需为此实现单独的QThread。

答案 1 :(得分:0)

这是复杂的王者,你必须重载paint()函数。您可以使用Regexp

禁止文本输入
#include <QRegExpValidator>
[...]
QLineEdit editor;
QRegExp rx("([0-9])");
editor.setValidator(new QRegExpValidator(rx, this));