将Qt-Window强制到特定屏幕

Elm*_*lmi 1 c++ windows qt qt5 qt5.9

我有一个连接有两个显示器的Windows系统,它本身可以扩展Windows桌面。现在,我想启动两个Qt应用程序,但需要将它们分别强制到一个特定的监视器,这意味着应用程序A总是必须在监视器1上打开它的窗口,应用程序B总是必须在监视器2上打开它的窗口(无论它们在哪里) (无论鼠标当前位于何处)都已被打开)。

如何自动完成?只能通过桌面的屏幕坐标来完成吗?如果是,如何将基于QWidget的窗口强制设置为特定坐标?如果不是,那还能怎么做?

谢谢!

The*_*EEP 5

要获取运行时的屏幕数量,可以使用:

int screenCount = QApplication::desktop()->screenCount();
Run Code Online (Sandbox Code Playgroud)

要获取屏幕的几何形状,可以使用:

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

将窗口移到该位置(或调整其大小)很简单:

yourWindow->move(QPoint(screenRect.x(), screenRect.y()));
Run Code Online (Sandbox Code Playgroud)