Qt obtiene el tamaño o resolución de la pantalla (escritorio)

Qt proporciona dos clases, QDesktopWidget y QScreen, para obtener el tamaño de la pantalla. A partir de Qt5, QDesktopWidget queda oficialmente obsoleto y reemplazado por QScreen. En Qt 6.0 y versiones posteriores, QDesktopWidget se eliminó por completo del módulo QtWidgets.

QDesktopWidget

QDesktopWidget proporciona información de posición detallada, que puede devolver automáticamente la posición de la ventana en la ventana del usuario y la posición de la ventana de la aplicación.

QDesktopWidget* pDesktopWidget = QApplication::desktop();
    
//获取可用桌面大小
QRect deskRect = QApplication::desktop()->availableGeometry();
//获取主屏幕分辨率
QRect screenRect = QApplication::desktop()->screenGeometry();
//获取屏幕数量
int nScreenCount = QApplication::desktop()->screenCount();

QScreen Obtiene el tamaño de pantalla del sistema

#include<QScreen>
#include<QRect>
 
//单屏幕
QScreen* screen = QGuiApplication::primaryScreen();  //获取主屏幕

//多屏幕
QList<QScreen *> screenList =  QGuiApplication::screens();  //多显示器
QList<QRect *> rectList;
for(int i = 0; i < screenList.size(); i++){
	rectList.append(screenList.at(i).geometry());  //分辨率大小
}

Si hay varias pantallas, el rectángulo de cada pantalla es diferente y las coordenadas iniciales son diferentes. Las coordenadas iniciales de la primera pantalla son (0, 0) y las coordenadas iniciales de la segunda pantalla son (1920, 0) 

    /**
     * 设置窗体初始化位置及尺寸。
     */
    QScreen* screen = QApplication::primaryScreen();
    QRect rectangle = screen->geometry();
    int width = rectangle.width();
    int height = rectangle.height();
    setGeometry(width / 10, height / 10, width * 3 / 4, height * 4 / 5);

 La diferencia entre geometría() y disponibleGeometría()

QScreen* screen = QGuiApplication::primaryScreen();

QRect rect1 = screen->geometry();
qDebug() << "rect1" << rect1.size().width() << rect1.size().height();
qDebug() << rect1.topLeft();
qDebug() << rect1.bottomRight();

QRect rect2 = screen->availableGeometry();
qDebug() << "rect2" << rect2.size().width() << rect2.size().height();
qDebug() << rect2.topLeft();
qDebug() << rect2.bottomRight();
  • geometría() devuelve el tamaño de la pantalla, es decir, la resolución de la pantalla, incluida la barra de herramientas en la parte inferior de la pantalla (1090*1080)
  • availableGeometry() devuelve el tamaño de la pantalla disponible, excluyendo la barra de herramientas debajo de la pantalla (1090*1040)

Supongo que te gusta

Origin blog.csdn.net/weiweiqiao/article/details/133336503
Recomendado
Clasificación