Описание тега qapplication
В QApplication
Класс управляет потоком управления и основными настройками приложения GUI.QApplication specializes
QGuiApplication
с некоторыми функциями, необходимыми для приложений на основе QWidget. Он обрабатывает специфическую инициализацию и завершение виджета.
Для любого приложения с графическим интерфейсом пользователя, использующего Qt, существует ровно один QApplication
объект, независимо от того, имеет ли приложение 0, 1, 2 или более окон в любой момент времени.
Некоторые приложения с графическим интерфейсом предоставляют специальный пакетный режим, т.е. предоставить аргументы командной строки для выполнения задач без ручного вмешательства. В таком режиме без графического интерфейса часто бывает достаточно создать экземпляр простогоQCoreApplication
чтобы избежать ненужной инициализации ресурсов, необходимых для графического пользовательского интерфейса.
В QApplication
объект доступен через instance()
функция, которая возвращает указатель, эквивалентный глобальному qApp
указатель.
QApplication
Основные сферы ответственности:
- Он инициализирует приложение с настройками рабочего стола пользователя, такими как
palette()
,font()
а такжеdoubleClickInterval()
. Он отслеживает эти свойства на случай, если пользователь глобально изменит рабочий стол, например, через какую-то панель управления. - Он выполняет обработку событий, что означает, что он получает события от базовой оконной системы и отправляет их соответствующим виджетам. Используя
sendEvent()
а такжеpostEvent()
вы можете отправлять свои собственные события виджетам. - Он анализирует общие аргументы командной строки и соответственно устанавливает свое внутреннее состояние. См. Дополнительную информацию в документации конструктора ниже.
- Он определяет внешний вид приложения, заключенный в
QStyle
объект. Это можно изменить во время выполнения с помощьюsetStyle()
. - Он определяет, как приложение должно распределять цвета. Видеть
setColorSpec()
для подробностей. - Он обеспечивает локализацию строк, которые видны пользователю через translate().
- Он предоставляет некоторые волшебные объекты, такие как рабочий стол () и
clipboard()
. - Он знает об окнах приложения. Вы можете спросить, какой виджет находится в определенной позиции, используя
widgetAt(),
получить списокtopLevelWidgets()
а такжеcloseAllWindows()
, так далее. - Он управляет обработкой курсора мыши в приложении, см.
setOverrideCursor()
.