我有一个连接了两个显示器的 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()));
关于c++ - 强制 Qt-Window 到特定屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48742152/