将Qt窗口强制显示在特定屏幕上

3
我有一台连接了两个显示器的Windows系统,可以扩展Windows桌面。现在我想启动两个Qt应用程序,但需要强制它们分别在特定的监视器上打开窗口,即应用程序A始终要在监视器1上打开窗口,应用程序B始终要在监视器2上打开窗口(无论它们上次在哪里打开,也不管鼠标此刻位于何处)。
如何自动完成这项操作?是否只能通过桌面的屏幕坐标来完成?如果是,那么我该如何将基于QWidget的窗口强制转到特定的坐标?如果不是,还有其他方法吗?
1个回答

7

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

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()));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接