PDA

View Full Version : how to make input mask and validator work together?



homerli
2nd June 2009, 08:04
After I set input mask "000 000 000" to my QLineEdit and then set QRegExpValidator "(\\d{3}) (\\d{3}) (\\d{3})" to it, I can't input number in the QLineEdit. But each of them works OK separately.

How can I write the QRegExpValidator to match the input mask and make them work together?

lyuts
2nd June 2009, 09:19
If each of them works fine separately, then would you need them to work together? Is either one of them not enough for your case?

homerli
4th June 2009, 08:57
yes, I original set the input mask. but some one else may use this widget I provided and set validator for it.

lyuts
4th June 2009, 09:10
So, you are creating a widget that may be used for others.

Well, then one of possible solutions is to provide methods, something like


setValidator(Validator ...);
setInputMask(InputMask ...);


which will set the desired mechanism and clear the second. I mean you want to use a validator, you call setValidator(your_validator) which sets it and clears the input mask (if it is set).

homerli
4th June 2009, 09:48
when set validator to line edit, you can remove the already input mask. but my question is how to make them work together? Use the input mask and how to write a good validator to math the input mask?

lyuts
4th June 2009, 10:02
Well, then i don't understand what you are trying to say by your



but some one else may use this widget I provided and set validator for it.

homerli
4th June 2009, 10:11
first I set default input mask for line edit. but some one else wants to set a validator for it.

lyuts
4th June 2009, 10:19
counter-question:

Do these input mask and validator do the SAME kind of validation/verification?

If yes, i don't see any problem with clearing the input mask when someone sets the validator.

lyuts
4th June 2009, 10:28
Tell us a little bit about your widget, so we can get the main idea of what you are doing.

homerli
4th June 2009, 10:35
my widget is a line edit. for example I set it with input mask "000.000.000.000" (this is a IP address inp ut mask). Then some one else wants to set a validator to the line edit and the validator could forbide user input numbers which are larget than 255. How can I write the QRegExpValidator rules under the exist input mask?

lyuts
4th June 2009, 10:47
Well, tell me, what is the purpose of this input mask when it doesn't provide the complete validation of IP addresses?

homerli
5th June 2009, 09:53
just notice user this is a IP address and user no need to input dot in line edit.