2

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

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

谢谢!

4

1 回答 1

6

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

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()));
于 2018-02-12T08:31:27.357 回答