C++ Qt关于多屏幕窗口处理

简介: C++ Qt关于多屏幕窗口处理

一、多显示器Qt窗口处理

假设包含两块屏幕,分辨率分别为1920✖1080,设置为扩展屏,想将窗口(1920✖1080)显示在第二块屏幕上

  1. 首先获取屏幕数量
  2. 若为一块屏幕,setGeometry(0, 0, 1920, 1080)
  3. 若为两块屏幕,获取主屏幕,若第一块屏幕为主屏幕,setGeometry(1920, 0, 1920,
    1080),若第二块屏幕为主屏幕,setGeometry(0, 0, 1920, 1080)

注意:QGuiApplication::primaryScreen()->virtualGeometry(),获取到的主屏幕X、Y都为0,无论主屏幕是第一块屏幕还是第二块屏幕

二、代码

代码如下(示例):

  QDesktopWidget* desktopWidget = QApplication::desktop();
  //获取设备屏幕大小
  int screencount = desktopWidget->screenCount();
  this->setGeometry(0, 0, 1920, 1080);
  if (screencount == 2) {
    QRect rect = desktopWidget->screenGeometry(screencount - 1);
    QScreen *primaryScreen = QGuiApplication::primaryScreen();
    QRect primaryVirtualGeometry = primaryScreen->virtualGeometry();
    int primaryScreenX = primaryVirtualGeometry.x();
    int primaryScreenY = primaryVirtualGeometry.y();
    if (primaryScreenX == 0 && primaryScreenY == 0) {
    this->setGeometry(1920, 0, 1920, 1080);
    }
    else {
    this->setGeometry(0, 0, 1920, 1080);
    }
  }

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:

零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)

https://xxetb.xet.tech/s/VsFMs


相关文章
|
5月前
|
存储 监控 算法
基于 C++ 哈希表算法实现局域网监控电脑屏幕的数据加速机制研究
企业网络安全与办公管理需求日益复杂的学术语境下,局域网监控电脑屏幕作为保障信息安全、规范员工操作的重要手段,已然成为网络安全领域的关键研究对象。其作用类似网络空间中的 “电子眼”,实时捕获每台电脑屏幕上的操作动态。然而,面对海量监控数据,实现高效数据存储与快速检索,已成为提升监控系统性能的核心挑战。本文聚焦于 C++ 语言中的哈希表算法,深入探究其如何成为局域网监控电脑屏幕数据处理的 “加速引擎”,并通过详尽的代码示例,展现其强大功能与应用价值。
111 2
|
5月前
|
监控 算法 数据处理
基于 C++ 的 KD 树算法在监控局域网屏幕中的理论剖析与工程实践研究
本文探讨了KD树在局域网屏幕监控中的应用,通过C++实现其构建与查询功能,显著提升多维数据处理效率。KD树作为一种二叉空间划分结构,适用于屏幕图像特征匹配、异常画面检测及数据压缩传输优化等场景。相比传统方法,基于KD树的方案检索效率提升2-3个数量级,但高维数据退化和动态更新等问题仍需进一步研究。未来可通过融合其他数据结构、引入深度学习及开发增量式更新算法等方式优化性能。
146 17
|
6月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
304 14
WK
|
11月前
|
开发框架 开发工具 C++
C++跨平台框架Qt
Qt是一个功能强大的C++跨平台应用程序开发框架,支持Windows、macOS、Linux、Android和iOS等操作系统。它提供了250多个C++类,涵盖GUI设计、数据库操作、网络编程等功能。Qt的核心特点是跨平台性、丰富的类库、信号与槽机制,以及良好的文档和社区支持。Qt Creator是其官方IDE,提供了一整套开发工具,方便创建、编译、调试和运行应用程序。Qt适用于桌面、嵌入式和移动应用开发。
WK
364 5
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
1921 4
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
662 2
|
C++ Windows
Qt 窗口置顶
Qt 窗口置顶
340 1
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
2823 4
|
数据安全/隐私保护
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
1097 4

推荐镜像

更多
  • qt