Qt / Как я могу иметь подокна, не теряя фокус главного окна? - PullRequest
1 голос
/ 12 декабря 2011

У меня есть главное окно (в MS Windows), и я хочу иметь подокна или подпанели со свободным движением экрана.Я могу использовать диалоговое окно и флаг Qt::splashscreen, но когда я нахожусь в этих подокнах, я теряю заголовок фокуса для главного окна.Есть ли хитрость, чтобы делать то, что я хочу?(Что-то вроде мультифокуса ...) Может быть, это невозможно?

Ответы [ 3 ]

0 голосов
/ 13 декабря 2011

Хотите QMdiArea ? Или фокус-прокси ?

В Qt все окна верхнего уровня независимы, ни одно из них не является "главным". Если вы хотите назначить одно в качестве главного окна и сделать так, чтобы оно украло фокус у других, вам придется реализовать это вручную .

0 голосов
/ 13 декабря 2011

Звучит так, будто вы просто хотите иметь виджеты, которые можно свободно перемещать в родительском виджете / окне, не вызывая событие «изменение фокуса окна» между собственными окнами Windows (...).

Я не уверен, есть ли готовое решение для этого, но добавление некоторых событий захвата / перемещения / изменения размера к краям виджета не должно быть , что сложно, или?

Я бы просто ловил события mousedown / up в определенных областях (это, вероятно, должны быть собственные виджеты со ссылкой на родительский подвижный виджет), и заставлял их изменять размер / перемещать окно при перемещении мыши.

0 голосов
/ 13 декабря 2011

Я не уверен, что вы имеете в виду, потеряв фокус.

Когда я создаю приложение с несколькими окнами, это то, что я делаю: в виджете подокна я устанавливаю родителя в главное окно и устанавливаю флаг Qt :: Tool. Он имеет несколько эффектов: оконный менеджер видит его как одно окно, и когда вы фокусируете любое окно, все окна поднимаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...