Название: Как поймать момент получения фокуса? Отправлено: Caduceus от Июль 19, 2010, 22:56 Мне надо сделать, чтобы когда встаем на QLineEdit , то сразу бы атоматически селектился весь текст
Переопределил QLineEdit и в focusInEvent вставил selectAll Не заработало. Куда надо вставить selectAll, чтоб получилось как мне надо? Название: Re: Как поймать момент получения фокуса? Отправлено: lit-uriy от Июль 19, 2010, 23:10 может не правильно переопределил?
по идее всё должно работать Название: Re: Как поймать момент получения фокуса? Отправлено: Caduceus от Июль 19, 2010, 23:16 Дело в том, что если я ставлю точку останова, то дебагер там останавливается И!!! выделается потом как надо. А если точку останова не ставлю, то не выделяется :)
Название: Re: Как поймать момент получения фокуса? Отправлено: SimpleSunny от Июль 20, 2010, 11:31 Возможно после focusInEvent приходят еще какие-то события, которые снимают выделение.
Название: Re: Как поймать момент получения фокуса? Отправлено: blindvic от Декабрь 18, 2010, 12:45 видимо сначала обрабатывается focusInEvent, в котором выделяется весь текст, а потом mouseclick к-й это выделение сбрасывает?
Название: Re: Как поймать момент получения фокуса? Отправлено: Авварон от Декабрь 18, 2010, 13:13 QTimer::singleShot(0, this, SLOT(selectAll()));
Название: Re: Как поймать момент получения фокуса? Отправлено: Thanatos от Август 25, 2011, 03:00 Оживим старый труп :)
Цель прежняя: при клике мышью на QLineEdit должен выделяться текст Фильтр событий отрабатывает, но выделения нет Код: bool ChatWindow:: eventFilter(QObject * obj, QEvent * event) QTimer::singleShot(0, ui->adressLine, SLOT(selectAll())); QTimer::singleShot(0, ui->nickName, SLOT(selectAll())); также не помогает может у кого новый опыт в решении этой проблемы накопился? Название: Re: Как поймать момент получения фокуса? Отправлено: LisandreL от Август 25, 2011, 07:33 А вызов оригинального eventFilter там есть?
Покажите полностью код. Название: Re: Как поймать момент получения фокуса? Отправлено: Thanatos от Август 25, 2011, 12:58 Вот весь фильтр событий
Код: bool ChatWindow:: eventFilter(QObject * obj, QEvent * event) И в догонку ещё один момент, чтоб новую тему не создавать. case QEvent::MouseButtonRelease вызывается при нажатии на кнопку ui->connectButton, которая является зажимаемой (setCheckable(true)). Проблема в том, что событие вызывается раньше, чем свойство checked меняет свое значение. (В итоге в мою функцию startConnect(bool checked) приходиться передавать инвертированое значение.) А хотелось бы наоборот! Название: Re: Как поймать момент получения фокуса? Отправлено: Thanatos от Август 28, 2011, 18:43 Проблема решена заменой QEvent::FocusIn на QEvent::MouseButtonRelease
Название: Re: Как поймать момент получения фокуса? Отправлено: Alexandr от Сентябрь 05, 2011, 12:14 Так как QLineEdit все равно переопределять, и ничего нестандартного, кроме выделения текста после получения фокуса не требовалось, то я сделал так:
Код: #ifndef CUSTOM_LINE_EDIT_H |