Класс QDesktopWidget
Класс QDesktopWidget предоставляет доступ к информации о экранах в системах с несколькими мониторами. Подробнее...
| Заголовок: | #include <QDesktopWidget> |
| qmake: | QT += widgets |
| Наследует: | QWidget |
Этот класс устарел. Он предоставляется для обеспечения работы старого кода. Мы настоятельно рекомендуем не использовать его в новом коде.
Открытые функции
| const QRect | availableGeometry(const QWidget *widget) const |
| const QRect | screenGeometry(const QWidget *widget) const |
| int | screenNumber(const QWidget *widget = nullptr) const |
Подробное описание
Системы с более чем одной графической картой и монитором могут управлять физическим пространством экрана, доступным либо как несколько рабочих столов, либо как один большой виртуальный рабочий стол.
Этот класс предоставляет информацию о рабочем столе пользователя, такую как его общий размер, количество экранов, геометрия каждого экрана и то, сконфигурированы ли они как отдельные рабочие столы или как один виртуальный рабочий стол.
Виджеты, предоставляемые Qt, используют этот класс для размещения всплывающих подсказок, меню и диалоговых окон на правильном экране для своих родительских или прикладных виджетов. Приложения могут использовать этот класс для получения информации, которая может использоваться для сохранения позиций окон или для размещения дочерних виджетов и диалогов на конкретном экране.
Получение виджета рабочего стола
Функция QApplication::desktop() используется для получения экземпляра QDesktopWidget.
Функция screenGeometry() виджета предоставляет информацию о геометрии доступных экранов. Количество доступных экранов возвращается свойством screenCount, а сигнал screenCountChanged() испускается при добавлении или удалении экранов. Номер экрана, в котором находится конкретная точка или виджет, возвращается функцией screenNumber().
Геометрия экрана
Чтобы получить размеры конкретного экрана, вызовите функцию screenGeometry(). В некоторых средах рабочего стола не все пространство экрана доступно для использования приложениями; например, панель задач или строка меню могут занимать некоторое пространство. Используйте функцию availableGeometry(), чтобы получить доступную область для приложений.
QDesktopWidget также наследует свойства QWidget, width() и height(), которые определяют размер рабочего стола. Однако для рабочих столов с несколькими экранами размер рабочего стола является объединением размеров всех экранов, поэтому width() и height() не должны использоваться для вычисления размера виджета, который необходимо разместить на одном из экранов.
В системах, сконфигурированных для использования доступных экранов как единого большого виртуального рабочего стола, свойство virtualDesktop будет установлено в true. В этом случае размер виджета обычно равен размеру ограничивающей прямоугольной области всех экранов.
Использование основного экрана
Для приложения экран, на котором находится основной виджет, является основным экраном. Это хранится в свойстве primaryScreen. Все окна, открытые в контексте приложения, должны быть ограничены границами основного экрана; например, неудобно, если диалоговое окно всплывает на другом экране или разделяется между двумя экранами.
На иллюстрации выше, основной экран приложения Один — экран 0, а основной экран приложения Два — экран 1.
См. также QApplication и QApplication::desktop().
Документация по членам функции
const QRect QDesktopWidget::availableGeometry(const QWidget *widget) const
Это перегруженная функция.
Возвращает доступную геометрию экрана, который содержит widget.
См. также screenGeometry().
const QRect QDesktopWidget::screenGeometry(const QWidget *widget) const
Это перегруженная функция.
Возвращает геометрию экрана, содержащего widget.
int QDesktopWidget::screenNumber(const QWidget *widget = nullptr) const
Возвращает индекс экрана, содержащего наибольшую часть widget, или -1, если виджет не находится на экране.
См. также primaryScreen.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qdesktopwidget.html