强制 Qt-Window 到特定屏幕
Posted
技术标签:
【中文标题】强制 Qt-Window 到特定屏幕【英文标题】:Force Qt-Window to specific screen 【发布时间】:2018-02-12 08:26:15 【问题描述】:我有一个 Windows 系统,它连接了两个显示器,它本身就扩展了 Windows 桌面。现在我想启动两个 Qt 应用程序,但需要强制它们每个到一个特定的监视器,这意味着应用程序 A 总是必须在监视器 1 上打开它的窗口,应用程序 B 总是必须在监视器 2 上打开它的窗口(无论它们在哪里上一次打开过,无论当前鼠标在哪里)。
如何自动完成?只能通过桌面的屏幕坐标来完成吗?如果是:如何将基于 QWidget 的窗口强制到特定坐标?如果不是:还能怎么做?
谢谢!
【问题讨论】:
【参考方案1】:要在运行时获取屏幕数量,您可以使用:
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()));
【讨论】:
以上是关于强制 Qt-Window 到特定屏幕的主要内容,如果未能解决你的问题,请参考以下文章