Qt验证器-我如何拒绝中间结果
Qt Validators - how do I reject intermediate results?
据我所知,验证器可以返回三个结果:Invalid、Intermediate和Acceptable。假设我的行编辑有一个regexp验证器集,使用以下正则表达式:
[ab][cd]
因此,有效值为:ac
, ad
, bc
, bd
:
如果我尝试输入任何其他字符,例如e
或0
,行编辑将不允许我输入它。但是,如果我输入a
并切换到另一个控件,它将没有问题,尽管a
的值是不可接受的,而是中间值。
这就是我想要的。我希望行编辑拒绝我切换焦点到任何其他控件,如果它的输入是不可接受的。也就是说,我需要输入一行完全满足正则表达式的代码,以便切换焦点。否则,我希望我的表单/对话框等拒绝我切换焦点的能力。
是否有一个简单的单行方法来做到这一点,或者我必须手动做到这一点?如果是后者,标准的做法是什么?
有一个QApplication::focusChanged()信号。您可以捕捉到这种情况,如果您的小部件的结果是有效的或中间的,则显式地检查它,并采取适当的操作。
我不知道一个单行的解决方案,但它可能仍然存在。我的解决办法是更手动一点。
参见当一个小部件失去焦点时的信号是什么?
相关文章:
- 2D数组来自文本输入,中间有空格
- 访问被拒绝后,c++中的故障保护代码
- IpOpt拒绝解决不受约束的问题
- Termux权限被拒绝
- AWS Lambda C++运行时权限被拒绝
- WinSock2:connect() 提供"连接被拒绝"
- 为什么 KMS drmModeSetCrtc() 在 X11 会话中运行时会失败并被拒绝权限?
- 删除目录函数访问被拒绝
- 模板签名解析为 void(void) 被 GCC 拒绝;这是否有效C++?
- 递归形成字符串中所有数字字符的中间和?
- 为什么 Windows 拒绝访问某些进程的名称?
- 链表错误的中间
- std::stoi 的版本拒绝任何非数字
- 我在执行任何程序时被拒绝在 devcpp 中访问
- Windows C++:文件夹移动访问被拒绝错误
- AWS AMI 中的 Windows DPAPI 失败,访问被拒绝
- 使用崇高文本 3 进行C++拒绝授予权限?
- 使(虚拟)函数在大多数派生类中无法访问中间基类中可访问,定义良好?
- 从函数返回范围视图时,带有std::span:中间对象所有权的C++Ranges-v3
- Qt验证器-我如何拒绝中间结果