Skip to content

QScreen ​

在Qt中,QScreen 类用于表示一个物理屏幕或显示设备。它提供了关于屏幕的各种信息,例如屏幕的分辨率、物理尺寸、颜色深度、刷新率等。QScreen 类通常用于多显示器环境中,帮助开发者获取和管理不同屏幕的信息。

以下是 QScreen 类的一些主要用途和功能:

  1. 获取屏幕信息 分辨率:通过 QScreen::size() 可以获取屏幕的分辨率(宽度和高度)。

物理尺寸:通过 QScreen::physicalSize() 可以获取屏幕的物理尺寸(以毫米为单位)。

DPI:通过 QScreen::logicalDotsPerInch() 或 QScreen::physicalDotsPerInch() 可以获取屏幕的逻辑DPI或物理DPI。

颜色深度:通过 QScreen::depth() 可以获取屏幕的颜色深度。

刷新率:通过 QScreen::refreshRate() 可以获取屏幕的刷新率。

  1. 多显示器支持 在多显示器环境中,QScreen 类可以帮助你获取所有连接的屏幕的信息,并确定哪个屏幕是主屏幕。

主屏幕:通过 QGuiApplication::primaryScreen() 可以获取主屏幕。

所有屏幕:通过 QGuiApplication::screens() 可以获取所有连接的屏幕列表。

  1. 屏幕几何信息 屏幕几何:通过 QScreen::geometry() 可以获取屏幕的几何信息,包括屏幕的左上角位置和尺寸。

可用几何:通过 QScreen::availableGeometry() 可以获取屏幕上可用的几何区域,通常排除任务栏等系统UI元素。

  1. 屏幕变换 屏幕变换:通过 QScreen::transformBetween() 可以获取从一个屏幕坐标系到另一个屏幕坐标系的变换矩阵。

  2. 屏幕事件 QScreen 类还可以用于监听屏幕相关的变化事件,例如屏幕连接、断开、分辨率变化等。你可以通过 QScreen::virtualSiblings() 获取与当前屏幕相关的其他屏幕。

示例代码 以下是一个简单的示例,展示如何使用 QScreen 类获取主屏幕的分辨率和物理尺寸:

cpp
#include <QGuiApplication>
#include <QScreen>
#include <QDebug>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    // 获取主屏幕
    QScreen *primaryScreen = QGuiApplication::primaryScreen();

    if (primaryScreen) {
        // 获取屏幕分辨率
        QSize resolution = primaryScreen->size();
        qDebug() << "Screen Resolution:" << resolution.width() << "x" << resolution.height();

        // 获取屏幕物理尺寸
        QSizeF physicalSize = primaryScreen->physicalSize();
        qDebug() << "Physical Size:" << physicalSize.width() << "x" << physicalSize.height() << "mm";
    }

    return app.exec();
}

总结 ​

QScreen 类在Qt中用于管理和获取屏幕的各种信息,特别是在多显示器环境中非常有用。通过 QScreen,开发者可以轻松地获取屏幕的分辨率、物理尺寸、DPI等信息,并处理屏幕相关的变化事件。

学 习 记 录