QDesktopWidget 类
QDesktopWidget类提供对多头/multi-head系统屏幕信息的访问。提供多个图形卡和多个显示器的系统物理屏幕空间作为多个桌面或大型虚拟桌面的管理。
QDesktopWidget类提供有关用户桌面的信息:总大小、屏幕数量、每个屏幕的几何形状以及它们是配置为单独的桌面还是单个虚拟桌面。
Qt 使用此类将工具提示、菜单和对话框放置在其父小部件或应用程序小部件的正确屏幕上。 也可以用来获取可用于保存窗口位置的信息,或将子窗口小部件和对话框放置在一个特定屏幕上。
其中:
screen(int screen = -1) ——返回一个表示带有索引屏幕的屏幕的小部件(值 -1 表示默认屏幕)。
对于应用程序,主窗口小部件所在的屏幕是主屏幕。存储在 primaryScreen 属性中。主屏幕为0,副屏幕为1。
desktop() ——返回桌面小部件(也称为根窗口)。
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel>
#include <QDesktopWidget>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//实例QLabel
QLabel *label = new QLabel(this);
//QLabel位置
label->setGeometry(QRect(50,50,200,25));
//实例QDesktopWidget
QDesktopWidget *desktopWidget = QApplication::desktop();
//实例QRect接收屏幕信息
QRect screenRect = desktopWidget->screenGeometry();
//定义字符串
QString str = "屏幕分辨率为:";
//屏幕宽度
int sWidth = screenRect.width();
//屏幕高度
int sHeight = screenRect.height();
//输出结果
label->setText(str+QString::number(sWidth,10)+" X "+QString::number(sHeight,10));
}
MainWindow::~MainWindow()
{
delete ui;
}