Название: qlineedit событие при потери фокуса Отправлено: admsasha от Мая 22, 2014, 07:09 Как отловить потерю и получение фокуса у QLineEdit ?
Название: Re: qlineedit событие при потери фокуса Отправлено: Johnik от Мая 22, 2014, 07:18 Код
Название: Re: qlineedit событие при потери фокуса Отправлено: Igors от Мая 22, 2014, 09:26 Чтобы не плодить темы - вспомнилась еще одна деталь с QLineEdit.
Пример: в немодальном диалоге юзер вводит текст в QLineEdit. Немедленно реагировать (на каждый символ) часто плохо, если приличные действия по приему - будет мельтешение/залипание. Нужна задержка, напр если в течение 0.5 сек (задается) не последовало еще ввода - принять данные. Вопрос: это самому делать или можно чем-то воспользоваться ? Спасибо Название: Re: qlineedit событие при потери фокуса Отправлено: Johnik от Мая 22, 2014, 09:51 Вопрос: это самому делать или можно чем-то воспользоваться ? я сам делал (псевдокод (qt5)):Код
вопрос в силе, может есть готовое решение? Название: Re: qlineedit событие при потери фокуса Отправлено: Igors от Мая 22, 2014, 10:10 я сам делал (псевдокод (qt5)): Там еще надо застрелить таймер если фокус соскочил или Enter, т.е. когда по-любому надо принять. Ну и edit'ов совсем не один. В общем "налипает" довольно много кодаНазвание: Re: qlineedit событие при потери фокуса Отправлено: Johnik от Мая 22, 2014, 10:18 Там еще надо застрелить таймер если фокус соскочил или Enter зачем, singleShot же?Название: Re: qlineedit событие при потери фокуса Отправлено: Johnik от Мая 26, 2014, 08:19 наткнулся:
Код
Цитировать This signal is emitted when the Return or Enter key is pressed or the line edit loses focus. Note that if there is a validator() or inputMask() set on the line edit and enter/return is pressed, the editingFinished() signal will only be emitted if the input follows the inputMask() and the validator() returns QValidator::Acceptable. Название: Re: qlineedit событие при потери фокуса Отправлено: Bepec от Мая 26, 2014, 09:03 Не всегда editingFinished присылается. (Qt 4.7.2)
PS информационный блок :) Название: Re: qlineedit событие при потери фокуса Отправлено: Igors от Мая 26, 2014, 09:17 наткнулся: Ну да, если этот сигнал получен - с таймером надо что-то делать. А использовать только этот сигнвл (игнорировать текущий ввод) тоже не выход, т.к. заставляет юзера все время лупить EnterКод
Цитировать This signal is emitted when the Return or Enter key is pressed or the line edit loses focus. Note that if there is a validator() or inputMask() set on the line edit and enter/return is pressed, the editingFinished() signal will only be emitted if the input follows the inputMask() and the validator() returns QValidator::Acceptable. Название: Re: qlineedit событие при потери фокуса Отправлено: Bepec от Мая 26, 2014, 09:29 Причем добавлю - именно Enter на основной клавиатуре. На дополнительной уже не работает :)
Название: Re: qlineedit событие при потери фокуса Отправлено: Johnik от Мая 26, 2014, 09:42 проверил только что, работает как на основной так и на дополнительной, т.е. Enter и Return
Название: Re: qlineedit событие при потери фокуса Отправлено: Bepec от Мая 26, 2014, 11:10 Скажу заранее спасибо, только отпишитесь какая версия Qt. Шоп я знал :)
Название: Re: qlineedit событие при потери фокуса Отправлено: Johnik от Мая 26, 2014, 11:43 qt5 (5.2.1, 5.3.0) изначально, теперь проверил и на qt4 (4.8.5)
Название: Re: qlineedit событие при потери фокуса Отправлено: Bepec от Мая 26, 2014, 14:20 Оукей, ещё раз спасибо.
|