Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: joker от Декабрь 23, 2011, 13:26



Название: Как запустить программу не перехватывая фокуса
Отправлено: joker от Декабрь 23, 2011, 13:26
Вобщем надо что-то вроде напоминалки - чтобы запущенная программа рисовала свое окошко (в данном слуае - для каждого нового напоминания - отдельная программа) поверх всех окон но фокус не забирала.

Насчет поверх всех окон -  вроде не сложно
    setWindowFlags (Qt::WindowStaysOnTopHint);

А вот насчет не забирать фокус у текущекго приложения - с этим траблы.
Где то нашел совет что стартовать надо свернутым а потом разворачивать, но
 - сработало только на win7
 - анимация разворачивания напрягает :(

Может кто подскажет вариант, как такое сделать?





Название: Re: Как запустить программу не перехватывая фокуса
Отправлено: kambala от Декабрь 23, 2011, 13:34
флаг Qt::Popup наверное


Название: Re: Как запустить программу не перехватывая &
Отправлено: joker от Декабрь 23, 2011, 13:56
Qt::Popup фокус вроде забирает (по крайней мере под 7ой виндой)

Кстати - и рисует окошко без шапки и кнопок (закрыть, свернуть и тп)


Название: Re: Как запустить программу не перехватывая фокуса
Отправлено: Syveren от Декабрь 23, 2011, 16:32
может это
void QWidget::setFocusPolicy ( Qt::NoFocus );


Название: Re: Как запустить программу не перехватывая фокуса
Отправлено: JamS007 от Декабрь 25, 2011, 14:57
Qt::WindowFlags:
     - Qt::ToolTip

Код:
setWindowFlags(Qt::ToolTip);