Принудительно переходить Qt-Window на определенный экран

У меня есть Windows-система с двумя подключенными к ней мониторами, которые расширяют рабочий стол Windows. Теперь я хочу запустить два Qt-приложения, но мне нужно принудительно настроить каждое из них на определенный монитор, что означает, что приложение A всегда должно открывать свое окно на мониторе 1, приложение B всегда должно открывать свое окно на мониторе 2 (независимо от того, где они были открыты в последний раз и независимо от того, где в данный момент находится мышь).

Как это можно сделать автоматически? Это можно сделать только через скрин-координаты рабочего стола? Если да: как я могу заставить свое окно на основе QWidget использовать определенную координату? Если нет: как еще это можно сделать?

Спасибо!


person Elmi    schedule 12.02.2018    source источник


Ответы (1)


Чтобы получить количество экранов во время выполнения, вы можете использовать:

int screenCount = QApplication::desktop()->screenCount();

Чтобы получить геометрию экрана, вы можете использовать:

QRect screenRect = QApplication::desktop()->screenGeometry(1); // 0-indexed, so this would get the second screen

Перемещение окна в эту позицию (или изменение его размера) становится тривиальным:

yourWindow->move(QPoint(screenRect.x(), screenRect.y()));
person TheSHEEEP    schedule 12.02.2018