c++ - 强制 Qt-Window 到特定屏幕

标签 c++ windows qt qt5 qt5.9

我有一个连接了两个显示器的 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/

相关文章:

c++ - 如何检测是否有任何过程阻止Windows进入休眠状态?

windows - 从Docker容器在exe内部执行打印

c++ - QT多项目配置

c++ - glBlendFunc() 的负色?

c++ - shared_ptr 作为类成员

c++ - 在资源文件 VC++ 中引用 $(SolutionDir)

c++ - 将字符串从 Glib::ustring 转换为 double - gtkm 2

.net - 无法使用 StackExchange.Redis 连接到 C# 中的 Azure Redis 缓存(超时错误)

c++ - Qt 5.3 QSystemTrayIcon 无法正常工作[Linux]

c++ - 如何从多个 std::threads 手动发送 QSignal?