После многих месяцев попыток, поиска, просмотра кода и т. Д. Я не могу найти решение для правильного позиционирования нового окна в QT.В моем самом простом случае я просто хочу получить окончательный размер окна и отцентрировать его под мышью.Он будет сдвинут, чтобы гарантировать, что ни одна часть окна не находится за пределами экрана.Я не хочу, чтобы окно появлялось и затем перемещалось в такое положение, которое вызывает визуальный шум, особенно при включенном рабочем столе FX.
Проблемы, с которыми я столкнулся, не все из которых имеют правильные решения:
frameGeometry не всегда заполняется до того, как окно было показано раньше.
frameGeometry иногда просто совершенно неверна, особенно в Windows 7.
Перед отображением невозможно узнать, будет ли применен sizeHint или size или что-то еще между ними.То есть политика размера не выглядит предсказуемой.
Обратите внимание, что я знаю, как сохранить / восстановить геометрию ранее созданного окна.Несмотря на недостатки QT и здесь, у меня есть рабочее решение.
Также обратите внимание, что я не могу использовать расположение оконного менеджера по умолчанию.Для не-MDI-приложений на установке с несколькими мониторами их расположение ужасно (часто даже не на том же мониторе, что и мышь).
Я также хотел бы избегать подклассирования всех виджетов и диалогов, простореализовать решение, так как оно не будет общим.Если это единственный возможный способ, я бы хотел рассмотреть его (если фильтры событий также не подходят).
У кого-нибудь есть хорошие работоспособные решения?