Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt验证器-如何拒绝中间结果?_C++_Qt_Validation_Qlineedit - Fatal编程技术网

C++ Qt验证器-如何拒绝中间结果?

C++ Qt验证器-如何拒绝中间结果?,c++,qt,validation,qlineedit,C++,Qt,Validation,Qlineedit,据我所知,验证器可以返回三个结果:无效、中间和可接受。 假设我的行编辑有一个带有以下正则表达式的regexp验证程序集: [ab][cd] 因此,有效值为:ac,ad,bc,bd: 如果我尝试输入任何其他字符,例如e或0,行编辑将不允许我实际输入它。但是,如果我输入a并切换到另一个控件,它将不会有问题,尽管值a是不可接受的,而是中间值 这就是我想要的。如果输入不可接受,我希望行编辑拒绝我将焦点切换到任何其他控件。也就是说,我需要输入一个完全满足正则表达式的行,以便切换焦点。否则,我希望我的表单

据我所知,验证器可以返回三个结果:无效、中间和可接受。 假设我的行编辑有一个带有以下正则表达式的regexp验证程序集:

[ab][cd]
因此,有效值为:
ac
ad
bc
bd

如果我尝试输入任何其他字符,例如
e
0
,行编辑将不允许我实际输入它。但是,如果我输入
a
并切换到另一个控件,它将不会有问题,尽管值
a
是不可接受的,而是中间值

这就是我想要的。如果输入不可接受,我希望行编辑拒绝我将焦点切换到任何其他控件。也就是说,我需要输入一个完全满足正则表达式的行,以便切换焦点。否则,我希望我的表单/对话框等拒绝我切换焦点的能力

是否有一种简单的单行程序方法来执行此操作,或者我必须手动执行此操作?如果是后者,标准的方法是什么?

有一个信号。您可以捕获它,并显式地检查小部件的结果是否有效或中间,并采取适当的措施

我不知道单行程序解决方案,但它可能仍然存在。我的解决方案更为手动

也看到