草庐IT

QDoubleValidator

全部标签

c++ - QLineEdit 与 QValidator : React to editing finished regardless of input validity?

QLineEdit有一个信号QLineEdit::editingFinished当用户完成编辑时发出,例如按回车键。但是,如果设置了验证器或输入掩码,则只有在输入有效时才会发出editingFinished。但是无论输入的有效性如何,我如何对用户完成编辑使用react?我是否必须手动检查输入、返回、小部件失去焦点等?这样做的原因:我想使用QDoubleValidator创建一个自定义小部件来编辑数字。当用户完成编辑并且输入无效(错误的范围、空文本……)时,我想将其重置为某个有效的默认值。像这样:classNumberEdit:publicQLineEdit{public:NumberE

c++ - 仅允许在 QDoubleValidator 的范围内进入 QLineEdit

我有一组QLineEdits应该接受一定范围内的double值(例如,-15到15)。在设置每个时,我有一些类似的东西:lineEdit->setValidator(newQDoubleValidator(minVal,maxVal,5,lineEdit));理想情况下,行编辑可以只输入范围内的值。当我尝试这个时,我注意到只能按需要输入数字,但它们仍然可能超出范围。我如何动态地强制输入适合范围(例如,如果范围是-15到15并且用户键入1,然后尝试键入9,它不起作用/显示9...但是输入1然后输入2确实有效/显示2.)?我是否需要在某处连接并调用validate()函数?