Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Май 11, 2015, 13:11



Название: Окна не меняющие фокус
Отправлено: Igors от Май 11, 2015, 13:11
Добрый день

Ну вот нужны такие, чтобы при нажатии в это окно фокус ему не передавался. В четверке + OSX проблем не было - просто флаг Qt::Tool. Но в пятерке это не имеет нужного эффекта (ни на OSX ни на Вындоуз). Как-то там суетиться и возвращать фокус взад - ужасный "костыль"

И я уж было совсем смирился, ну что поделать "нельзя так нельзя". НО вот сегодня, совершенно случайно, в рез-те совершенно др манипуляций, я получаю именно то что нужно: при нажатии мыша окно вылазит наверх, но фокус остается на прежнем. Конечно распечатал флажки и атрибуты "до" и "после". Они совершенно одинаковы. Где же порылась собака?

Спасибо   



Название: Re: Окна не меняющие фокус
Отправлено: Igors от Май 11, 2015, 13:55
Полез в исходники и нашел Qt::WindowDoesNotAcceptFocus - и вроде работает. Во блин, как я его раньше не видел ???

Но как я умудрился получить такое поведение ничего не зная об этом флажке? Ничего плохого вроде не делал - просто переназначал окну парента. Смотрю...


Название: Re: Окна не меняющие фокус
Отправлено: Igors от Май 12, 2015, 12:58
Поюзал Qt::WindowDoesNotAcceptFocus, приемлемо, но недоработано, отсыпает в консоль варнинги. И неудобно что нельзя сделать его активным если возникла необходимость, т.е. не проходит для него setActiveWindow.