Размещение дочернего окна Qt - PullRequest
2 голосов
/ 27 августа 2008

Есть ли способ указать начальную позицию окна ребенка в Qt?

У меня есть приложение, которое работает в Linux и Windows, и похоже, что стандартное поведение Qt позволяет Window Manager определять размещение дочерних окон.

В Windows это находится в центре экрана, на котором родитель выглядит разумно.

В Linux в GNOME (metacity) он всегда находится в верхнем левом углу, что раздражает. Я не могу найти какие-либо настройки оконного менеджера для metacity, которые позволяют мне управлять размещением окон, поэтому я бы хотел изменить это поведение.

Ответы [ 2 ]

3 голосов
/ 27 августа 2008

Qt Widget Geometry

Вызвать метод move (x, y) в дочернем окне перед show (). Значения по умолчанию для x и y равны 0, поэтому они отображаются в верхнем левом углу.
Вы также можете использовать положение родительского окна для вычисления относительной позиции для дочернего элемента.

0 голосов
/ 02 октября 2008

Как правило, я бы не рекомендовал форсировать положения окон, если ваше приложение не предъявляет особых требований к оконным функциям. Работа оконного менеджера состоит в том, чтобы определить, куда ставятся новые окна, и большинство из них делают хорошую работу. Если MetaCity не выбирает хорошую позицию, то это его проблема.

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

...