Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Апрель 05, 2014, 17:25



Название: Фокус при активации окна [решено]
Отправлено: Igors от Апрель 05, 2014, 17:25
Добрый день

Как реализовать такое поведение, пример

В окне неск QLineEdit'ов (или еще чего что может иметь фокус). Открыли окно - ни один из edit'ов еще не получает фокуса. Переключились на др окно и обратно - тоже нет фокуса. Но если юзер выбрал edit - он принимает фокус и восстанавливает при переключении (все как обычно). Если окно сбросило фокус (напр при клике в пустое место) - опять он "не появляется самостоятельно"

Спасибо


Название: Re: Фокус при активации окна
Отправлено: VPS от Апрель 06, 2014, 00:06
Если я правильно понял, то можно как-то так (http://www.prog.org.ru/index.php?action=dlattach;topic=26793.0;attach=7204).


Название: Re: Фокус при активации окна
Отправлено: Igors от Апрель 06, 2014, 07:54
Если я правильно понял, то можно как-то так (http://www.prog.org.ru/index.php?action=dlattach;topic=26793.0;attach=7204).
Поняли правильно, спасибо за тест. К сожалению фокус все-таки успевает проскочить до сброса (видно мигание). И как-то дорого выходит - фильтры назначить, переменную создавать. Понимаю что критиковать легче чем делать  :)


Название: Re: Фокус при активации окна
Отправлено: VPS от Апрель 06, 2014, 10:52
Переработал вариант (убрал фильтр и переменную). У меня вроде работает.

П.С.: надо вовремя отдыхать, а то чего-то сложно изначально получилось.


Название: Re: Фокус при активации окна
Отправлено: Igors от Апрель 06, 2014, 11:04
Во как просто! (когда показали  :)). У меня тоже работает

Спасибо


Название: Re: Фокус при активации окна [решено]
Отправлено: GreatSnake от Апрель 06, 2014, 11:41
И какое поведение будет при нажатии на [Tab]?


Название: Re: Фокус при активации окна [решено]
Отправлено: Igors от Апрель 06, 2014, 13:43
И какое поведение будет при нажатии на [Tab]?
Все норм, проверял


Название: Re: Фокус при активации окна [решено]
Отправлено: _OLEGator_ от Апрель 06, 2014, 14:27
Можно установить главному окну:
Код
C++ (Qt)
void setFocusPolicy(Qt::ClickFocus)
Вроде работает как надо без дополнительных костылей.


Название: Re: Фокус при активации окна [решено]
Отправлено: Igors от Апрель 06, 2014, 15:04
Можно установить главному окну:
Код
C++ (Qt)
void setFocusPolicy(Qt::ClickFocus)
Вроде работает как надо без дополнительных костылей.
Да, так еще лучше, только надо сделать setFocus в момент show иначе ставит на edit


Название: Re: Фокус при активации окна [решено]
Отправлено: _OLEGator_ от Апрель 06, 2014, 15:13
А в конструкторе установка setFocus в самом конце не прокатывает?


Название: Re: Фокус при активации окна [решено]
Отправлено: Igors от Апрель 06, 2014, 16:19
А в конструкторе установка setFocus в самом конце не прокатывает?
Проходит (во всяком случае на тестовом примере). Спасибо


Название: Re: Фокус при активации окна [решено]
Отправлено: panAlexey от Апрель 07, 2014, 11:59
Была такая проблема в MDI приложении.