我有一个相当复杂的对话框,输入是带有不同允许范围的数字。我想知道什么是最干净的模式,以保证我的QLineEdits具有正确的输入值。检查QT输入的输入
这样做的显而易见的方式似乎检查用户单击确定按钮时的输入值。我遇到的问题是,某些GUI控件取决于其他输入的值。因此,通过让我为所有输入值错误的情况分支控件的逻辑,代码似乎变得有点令人讨厌。
这种情况有没有好的模式?
我在考虑继承QLineEdit并使用focusOutEvent检查对话框的输入。如果输入不正确,我会默认值并触发逻辑。这将保证每个lineedit都负责它自己的验证。这样做是否有明显的缺陷?
QValidators真棒,问题是当他们的状态是中间的。
只是为了澄清 - 因为_“的输入是具有不同的允许范围的数字”_,那么你正在使用'QIntValidator'为那些,对吧? –
@TobySpeight我在任何地方都使用验证器,但是例如如果范围在10到20之间,用户仍然需要输入一个数字。这打破了逻辑。 – Mac
也许我不明白 - 用户如何输入10到20之间没有一位数字作为部分输入?或者你在问行编辑发出
'editEdited()''editingFinished()'信号时如何检查验证器? –