0
点赞
收藏
分享

微信扫一扫

Qt处理多屏程序


一、前言

随着时代的进入,人们对屏幕早已习以为常。所以大家追求越来越大的屏幕,确实大屏给人的震撼感很强。大屏通常是使用众多小屏幕拼接组成的,计算机多屏显示通常有扩展模式复制模式

  • 扩展模式:所有屏幕一字排开,组成长条形(宽*n - 高)屏幕,如下所示:
  • Qt处理多屏程序_c++

  • 复制模式:所有屏幕显示相同的画面

将屏幕接好之后,打开设置可以设置屏幕模式:

Qt处理多屏程序_desktop_02

二、关键代码

#include <QDesktopWidget>

//获取屏幕信息
QDesktopWidget* desktop = QApplication::desktop(); //获取屏幕对象(这个函数必须在创建了 QApplication 对象之后才能使用, 否则会出错)
int screenNum = desktop->screenCount(); //获取屏幕个数
int mainScreenID = desktop->primaryScreen(); //获取主屏幕索引,(windows开始菜单所在的屏幕为主屏幕),每个副屏幕序号+1
QRect screenRect = desktop->screenGeometry(int screen_index); //根据屏幕索引获取屏幕宽高等属性
int screenWidth = desktop->width(); //获取屏幕的宽
int screenWidth = desktop->height(); //获取屏幕的高
for(int i=0; i<screenNum; ++i) { //获取每块屏幕分辨率
qDebug()<<"屏幕"<<i+1<<"分辨率: "<<desktop->screenGeometry(i).size();
}

//======================================================================
//设置对话框mdlg显示在副屏1的左上角坐标
QDialog mdlg;
mdlg.setGeometry(desktop->screenGeometry(1));
mdlg.show();
//======================================================================
//如果想全屏显示在副屏1,则可以获取副屏1的分辨率,更新对话框的大小再设置坐标
mdlg.resize(desktop->screenGeometry(1).size()); //设置对话框全屏
mdlg.setGeometry(desktop->screenGeometry(1)); //设置对话框对齐副屏1左上角坐标
mdlg.show();
//======================================================================


举报

相关推荐

0 条评论