一、前言
随着时代的进入,人们对屏幕早已习以为常。所以大家追求越来越大的屏幕,确实大屏给人的震撼感很强。大屏通常是使用众多小屏幕拼接组成的,计算机多屏显示通常有扩展模式、复制模式。
- 扩展模式:所有屏幕一字排开,组成长条形(宽*n - 高)屏幕,如下所示:
- 复制模式:所有屏幕显示相同的画面
将屏幕接好之后,打开设置可以设置屏幕模式:
二、关键代码
#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();
//======================================================================