Название: QValidator & QTime Отправлено: dr_Begemot от Март 18, 2010, 10:10 Нужно сделать QValidator, который бы позволял вводить QTime.
Формат такой: hh:mm:ss.z Название: Re: QValidator & QTime Отправлено: alexman от Март 18, 2010, 10:25 QRegExp( "([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[0-9]" )
Название: Re: QValidator & QTime Отправлено: dr_Begemot от Март 18, 2010, 10:55 QRegExp( "([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[0-9]" ) Спасибо) А как ввести необязательный параметр? Типа в начале может быть +, - или ничего Название: Re: QValidator & QTime Отправлено: dr_Begemot от Март 18, 2010, 11:06 QRegExp( "([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[0-9]" ) Что-то не так с точкой, вместо нее вводится любой символ... Название: Re: QValidator & QTime Отправлено: alexman от Март 18, 2010, 11:18 А как ввести необязательный параметр? Типа в начале может быть +, - или ничего Код: QRegExp( "(+|-|)([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[0-9]" ) Название: Re: QValidator & QTime Отправлено: alexman от Март 18, 2010, 11:30 QRegExp( "([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[0-9]" ) Что-то не так с точкой, вместо нее вводится любой символ... Код: QRegExp( "(+|-|)([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\\.[0-9]" ) Название: Re: QValidator & QTime Отправлено: dr_Begemot от Март 18, 2010, 12:57 QRegExp( "([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[0-9]" ) Что-то не так с точкой, вместо нее вводится любой символ... Код: QRegExp( "(+|-|)([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\\.[0-9]" ) Спасибо) А как указать, что могут быть 1,2 или 3 числа, этот вариант как-то не элегантен... ([0-9][0-9][0-9])|([0-9][0-9])|([0-9]) upd - Не работает ([0-9][0-9][0-9])|([0-9][0-9])|([0-9]) Проблема в том, что editingFinished() у QLineEdit вызывается только после того, как введешь все числа, а формат hh:mm:ss.z, означает [00-23]:[00-59]:[00-59].[0-999] Название: Re: QValidator & QTime Отправлено: alexman от Март 18, 2010, 13:09 upd - Не работает ([0-9][0-9][0-9])|([0-9][0-9])|([0-9]) Смотри внимательнее!Код: ([0-9][0-9][0-9]|[0-9][0-9]|[0-9]) Название: Re: QValidator & QTime Отправлено: alexman от Март 18, 2010, 13:15 Проблема в том, что editingFinished() у QLineEdit вызывается только после того, как введешь все числа, а формат hh:mm:ss.z, означает [00-23]:[00-59]:[00-59].[0-999] Не понял мысль?Название: Re: QValidator & QTime Отправлено: dr_Begemot от Март 18, 2010, 14:49 upd - Не работает ([0-9][0-9][0-9])|([0-9][0-9])|([0-9]) Смотри внимательнее!Код: ([0-9][0-9][0-9]|[0-9][0-9]|[0-9]) Возможно я немного загнался) но вот я составил такое регулярное выражение: Код: #define MY_REG_EXP \ Но он почему-то не работает... смысл в том, чтобы позволять вводить данные в следующем формате: Код: [+/-/ничего] [число от 0-23] В данном случае идея в том, чтобы позволять вводить данные не до конца, считая не введенные данные по умолчанию равными нулю. Выражение Код: "([+]|[-]|)([0-1][0-9]|[2][0-3]|[0-9]):([0-5][0-9]|[0-9]):([0-5][0-9]|[0-9])\\.([0-9][0-9][0-9]|[0-9][0-9]|[0-9]|)" В чем ошибка? Название: Re: QValidator & QTime Отправлено: alexman от Март 18, 2010, 15:19 (+|-|)([0-1][0-9]|[2][0-3]|[0-9])(|:([0-5][0-9]|[0-9])(|:([0-5][0-9]|[0-9])(|\\.([0-9][0-9][0-9]|[0-9][0-9]|[0-9]|))))
Название: Re: QValidator & QTime Отправлено: dr_Begemot от Март 19, 2010, 09:23 (+|-|)([0-1][0-9]|[2][0-3]|[0-9])(|:([0-5][0-9]|[0-9])(|:([0-5][0-9]|[0-9])(|\\.([0-9][0-9][0-9]|[0-9][0-9]|[0-9]|)))) Заработало! спасибо) И, кстати, + и - надо оформлять в []-скобки, ну или два слеша ставить) Название: Re: QValidator & QTime Отправлено: alexman от Март 19, 2010, 09:41 (+|-|)([0-1][0-9]|[2][0-3]|[0-9])(|:([0-5][0-9]|[0-9])(|:([0-5][0-9]|[0-9])(|\\.([0-9][0-9][0-9]|[0-9][0-9]|[0-9]|)))) Заработало! спасибо) И, кстати, + и - надо оформлять в []-скобки, ну или два слеша ставить) |