Название: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: Evgeniya от Март 12, 2009, 11:19 Помогите, плииииз, написать сигнал для QLineEdit на получение фокуса ввода клавиатуры...т.е. мне нужно, чтобы он сразу сработал, когда курсор переходит на QLineEdit просто из стандартных никакой не подходит как мне кажется... ???
Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: BRE от Март 12, 2009, 11:25 Помогите, плииииз, написать сигнал для QLineEdit на получение фокуса ввода клавиатуры...т.е. мне нужно, чтобы он сразу сработал, когда курсор переходит на QLineEdit просто из стандартных никакой не подходит как мне кажется... ??? Тут тебе эвенты помогут. Смотри virtual void QWidget::focusInEvent ( QFocusEvent * event ).Также сразу посмотри про void QObject::installEventFilter ( QObject * filterObj ). Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: spirit от Март 12, 2009, 11:36 [offtop]
где-то я такое уже встречал на форуме :) [/offtop] Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: Evgeniya от Март 12, 2009, 13:41 Тут тебе эвенты помогут. Смотри virtual void QWidget::focusInEvent ( QFocusEvent * event ).
Также сразу посмотри про void QObject::installEventFilter ( QObject * filterObj ). virtual void QWidget::focusInEvent ( QFocusEvent * event ) будет относиться же ко всему классу...а чтобы отобрать нужный объект мне нужно воспользоваться void QObject::installEventFilter ( QObject * filterObj )....я так понимаю И вот я пытаюсь так сделать Код
Код
но толко у меня все-равно ничего не получается, возможно я не правильно понимаю это...посмотрите, пожалуйста Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: Evgeniya от Март 12, 2009, 14:14 чет я совсем запуталась...и похожей темы сдеся не найду >:(
Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: uriel от Март 12, 2009, 14:58 Вы почти на правильном пути. :) Только установку фильтра можно проводить сразу в конструкторе родительского виджета.
Код
Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: Evgeniya от Март 12, 2009, 16:34 Спасибочки!!!
работает так Код а в конструкторе вызываем ui.lineEdit_2->installEventFilter(this); только вот это сообщение постоянно выскакивает и его невозможно закрыть...ну что здесь не так ??? Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: Evgeniya от Март 12, 2009, 16:42 т.е. постоянно выполняется:
QMessageBox::information(0, "Information", "Фокус ввода получен"); Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: BRE от Март 12, 2009, 16:53 т.е. постоянно выполняется: :)QMessageBox::information(0, "Information", "Фокус ввода получен"); Потому что после закрытия MessageBox фокус передеается твоему QLineEdit и все повторяется, т.е. снова открывается MessageBox. Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: Evgeniya от Март 12, 2009, 17:02 А если выполнять другое действие вместо этого, или вообще ничего не выплнять...то пропадает сам курсор..все пишется, только курсора не видно >:(
это правильно, так и должно быть?? Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: spirit от Март 12, 2009, 17:20 нет так быть не должно. я такое тоже замечал.
Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: BRE от Март 12, 2009, 17:22 А если выполнять другое действие вместо этого, или вообще ничего не выплнять...то пропадает сам курсор..все пишется, только курсора не видно >:( Так не должно быть.это правильно, так и должно быть?? В ветке, где ты проводишь обработку убери QMessageBox и вместо return true делай return false. Для информации: Возвращая true, ты говоришь Qt что дальнейшую обработку этого события проводить не надо. А по этому событию, как раз и произодятся необходимые настройки QLineEdit. Название: Re: сигнал для QLineEdit на получение фокуса ввода клавиатуры Отправлено: Evgeniya от Март 12, 2009, 17:57 Спасибочкии всем огромное!!!!!Все получилось!!!!!!! :) :) :)
|