强制 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 到特定屏幕的主要内容,如果未能解决你的问题,请参考以下文章

c++ 强制 std::cout 刷新(打印到屏幕)

强制 SPA 添加到主屏幕弹出窗口即使在添加到主页后也会显示

如何强制从另一个 SSH 会话中分离屏幕?

强制 WPF 工具提示留在屏幕上

点击通知路由到特定的颤振屏幕

附加到屏幕特定部分的按钮