Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo obtener la resolución de pantalla en Qt

Cómo obtener la resolución de pantalla en Qt

Baidu tiene muchas respuestas

1. En Windows, puede usar GetSystemMetrics(SM_CXSCREEN); GetSystemMetrics(SM_CYSCREEN) para obtener. 2. En Linux, puede usar XDisplayWidth; XDisplayHeight () para obtener.

3. ¿Y en QT? Mucha gente dice que es QApplication::desktop()-gt;width();QApplication::desktop()-gt;height(); Este método, por supuesto, no es un problema para el modo de monitor único. Pero para varios monitores, especialmente cuando se utiliza un escritorio extendido, habrá problemas. Leí detenidamente la ayuda de QDesktopWidget esta mañana y descubrí que necesito usar QApplication::desktop()-gt; screenGeometry(); esta función tiene varias versiones sobrecargadas, todas con el mismo significado. Esta función devuelve un QRect. El ancho y el alto de este QRect son la resolución de la pantalla. El método de adquisición es el siguiente:

void GetScreenInfo()

{

QDesktopWidget* desktopWidget = QApplication::desktop();

// Obtener el tamaño de escritorio disponible

QRect deskRect = desktopWidget-gt; availableGeometry();

//Obtener el tamaño de pantalla del dispositivo

QRect screenRect = desktopWidget-gt; screenGeometry ();

g_nActScreenX = screenRect.width();

g_nActScreenY = screenRect.height();

//g_nActScreenX = deskRect .width();

//g_nActScreenY = deskRect.height();

//Obtiene el número de pantallas configuradas por el sistema (el valor es 1 en el modo de copia de pantalla)

g_nScreenCount = desktopWidget-gt; screenCount();

} Hablando de eso, por cierto, marque lo siguiente cuando se configuran varias pantallas en modo de copia, el número de pantallas obtenidas. es uno, y se devuelven varias pantallas solo cuando se establece en extensión.

Imprimir resolución de pantalla e información numérica:

void printscreeninfo()

{

QDesktopWidget *dwsktopwidget = QApplication::desktop () ;

QRect deskrect = dwsktopwidget-gt; availableGeometry();

QRect screenrect = dwsktopwidget-gt; screenGeometry();

QDesktopWidget *dwsktopwidget = QApplication: :desktop();

QRect deskrect = dwsktopwidget-gt; availableGeometry();

QRect screenrect = dwsktopwidget-gt;

int scrcount; = dwsktopwidget-gt; screenCount();

qCritical("screenrect.w==s\n", qPrintable(QString::number(screenrect.width())));

qCritical("screenrect.h==s\n", qPrintable(QString::number(screenrect.height())));

qCritical("deskrect.w==s\ n" , qPrintable(QString::number(deskrect.width())));

qCritical("deskrect.h==s\n", qPrintable(QString::number(deskrect.height( )) ));

qCritical("scrcount==s\n", qPrintable(QString::number(scrcount)));

}