在我的应用程序中有一个设置对话框。对话框中有设置参数的QLineEdit。这个参数应该是一个数字。当用户在QLineEdit中键入文本并按下Enter或按下另一个小部件时,我从QLineEdit读取文本,如果文本不是一个数字,则将前面的数字放在QLineEdit中。现在,如果用户在QLineEdit中输入错误的文本,我希望QLineEdit眨眼(就像用户按另一个组件时的模式对话框眨眼)3秒。我怎么发动汽车呢?
发布于 2014-07-07 12:13:36
最好的做法是创建一个从QLineEdit继承的自定义小部件。
但是,实现您想要做的另一种快速方法是将编辑连接到一个使QTimer启动的插槽上。然后将timeout()信号连接到更改QLineEdit样式表的插槽。不需要为此实现单独的QThread。
发布于 2014-07-06 16:24:11
这是一个非常复杂的问题,您必须重载paint()函数。可以使用Regexp禁止文本输入:
#include <QRegExpValidator>
[...]
QLineEdit editor;
QRegExp rx("([0-9])");
editor.setValidator(new QRegExpValidator(rx, this));https://stackoverflow.com/questions/24597683
复制相似问题