У меня есть Windows-система с двумя подключенными мониторами, которая сама расширяет рабочий стол Windows. Теперь я хочу запустить два Qt-приложения, но мне нужно принудительно установить каждое из них на определенный монитор, это означает, что приложение A всегда должно открывать свое окно на мониторе 1, приложение B всегда должно открывать свое окно на мониторе 2 (независимо от того, где они были открыты в последний раз и независимо от того, где находится мышь в данный момент).
Как это можно сделать автоматически? Это можно сделать только через экранные координаты рабочего стола? Если да: как я могу заставить мое окно на основе QWidget к определенной координате? Если нет: как еще это можно сделать?
Спасибо!
Чтобы получить количество экранов во время выполнения, вы можете использовать:
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()));
Других решений пока нет …