我有一个 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()));