Класс QApplication
Класс QApplication управляет потоком управления и основными настройками графического приложения. Подробнее...
| Заголовок: | #include <QApplication> |
| qmake: | QT += widgets |
| Наследуется от: | QGuiApplication |
Свойства
|
|
- 7 свойств унаследовано от QGuiApplication
- 5 свойств унаследовано от QCoreApplication
- 1 свойство унаследовано от QObject
Открытые функции
| QApplication(int &argc, char **argv) | |
| virtual | ~QApplication() |
| QString | styleSheet() const |
Переопределённые открытые функции
| virtual bool | notify(QObject *receiver, QEvent *e) override |
- 6 открытых функций унаследовано от QGuiApplication
- 3 открытых функции унаследовано от QCoreApplication
- 31 открытых функций унаследовано от QObject
Открытые слоты
| void | aboutQt() |
| bool | autoSipEnabled() const |
| void | closeAllWindows() |
| void | setAutoSipEnabled(const bool enabled) |
| void | setStyleSheet(const QString &sheet) |
- 1 открытый слот унаследовано от QCoreApplication
- 1 открытый слот унаследовано от QObject
Сигналы
| void | focusChanged(QWidget *old, QWidget *now) |
- 14 сигналов унаследовано от QGuiApplication
- 1 сигнал унаследовано от QCoreApplication
- 2 сигнала унаследовано от QObject
Статические открытые члены
| QWidget * | activeModalWidget() |
| QWidget * | activePopupWidget() |
| QWidget * | activeWindow() |
| void | alert(QWidget *widget, int msec = 0) |
| QWidgetList | allWidgets() |
| void | beep() |
| int | cursorFlashTime() |
| QDesktopWidget * | desktop() |
| int | doubleClickInterval() |
| int | exec() |
| QWidget * | focusWidget() |
| QFont | font() |
| QFont | font(const QWidget *widget) |
| QFont | font(const char *className) |
| QFontMetrics | fontMetrics() |
| QSize | globalStrut() |
| bool | isEffectEnabled(Qt::UIEffect effect) |
| int | keyboardInputInterval() |
| Qt::NavigationMode | navigationMode() |
| QPalette | palette(const QWidget *widget) |
| QPalette | palette(const char *className) |
| void | setActiveWindow(QWidget *active) |
| void | setCursorFlashTime(int) |
| void | setDoubleClickInterval(int) |
| void | setEffectEnabled(Qt::UIEffect effect, bool enable = true) |
| void | setFont(const QFont &font, const char *className = nullptr) |
| void | setGlobalStrut(const QSize &) |
| void | setKeyboardInputInterval(int) |
| void | setNavigationMode(Qt::NavigationMode mode) |
| void | setPalette(const QPalette &palette, const char *className = nullptr) |
| void | setStartDragDistance(int l) |
| void | setStartDragTime(int ms) |
| void | setStyle(QStyle *style) |
| QStyle * | setStyle(const QString &style) |
| void | setWheelScrollLines(int) |
| void | setWindowIcon(const QIcon &icon) |
| int | startDragDistance() |
| int | startDragTime() |
| const QMetaObject | staticMetaObject |
| QStyle * | style() |
| QWidget * | topLevelAt(const QPoint &point) |
| QWidget * | topLevelAt(int x, int y) |
| QWidgetList | topLevelWidgets() |
| int | wheelScrollLines() |
| QWidget * | widgetAt(const QPoint &point) |
| QWidget * | widgetAt(int x, int y) |
| QIcon | windowIcon() |
- 45 статических публичных членов, унаследованных от QGuiApplication
- 38 статических публичных членов, унаследованных от QCoreApplication
- 9 статических публичных членов, унаследованных от QObject
Реализованные защищённые функции
| virtual bool | event(QEvent *e) override |
- 1 защищённая функция, унаследованная от QGuiApplication
- 1 защищённая функция, унаследованная от QCoreApplication
- 9 защищённых функций, унаследованных от QObject
Макросы
| qApp |
Подробное описание
Класс QApplication управляет потоком управления и основными настройками графического приложения.
QApplication специализирует QGuiApplication с некоторыми функциями, необходимыми для приложений на основе QWidget. Он обрабатывает инициализацию и завершение, специфичные для виджетов.
Для любого графического приложения Qt существует ровно один объект QApplication, независимо от того, есть у приложения 0, 1, 2 или более окон в данный момент. Для приложений Qt, не основанных на QWidget, используйте QGuiApplication, так как он не зависит от библиотеки QtWidgets.
Некоторые графические приложения предоставляют специальный режим пакетной обработки, т.е. предоставляют аргументы командной строки для выполнения задач без ручного вмешательства. В таком режиме без графического интерфейса часто достаточно создать обычный объект QCoreApplication, чтобы избежать ненужной инициализации ресурсов, необходимых для графического пользовательского интерфейса. Следующий пример показывает, как динамически создать экземпляр соответствующего типа приложения:
QCoreApplication* createApplication(int &argc, char *argv[])
{
for (int i = 1; i < argc; ++i)
if (!qstrcmp(argv[i], "-no-gui"))
return new QCoreApplication(argc, argv);
return new QApplication(argc, argv);
}
int main(int argc, char* argv[])
{
QScopedPointer<QCoreApplication> app(createApplication(argc, argv));
if (qobject_cast<QApplication *>(app.data())) {
// start GUI version...
} else {
// start non-GUI version...
}
return app->exec();
} Объект QApplication доступен через функцию instance(), которая возвращает указатель, эквивалентный глобальному указателю qApp.
Основные обязанности QApplication:
- Инициализирует приложение с настройками рабочего стола пользователя, такими как палитра(), шрифт() и интервал двойного щелчка(). Следит за этими свойствами на случай, если пользователь изменит настройки рабочего стола глобально, например, через какой-либо инструмент управления.
- Обрабатывает события, то есть получает события от базовой системы окон и распределяет их соответствующим виджетам. С помощью sendEvent() и postEvent() вы можете отправлять собственные события виджетам.
- Парсит общие аргументы командной строки и соответственно устанавливает своё внутреннее состояние. Более подробная информация содержится в документации конструктора ниже.
- Определяет внешний вид приложения, который заключен в объекте QStyle. Его можно изменить во время выполнения с помощью setStyle().
- Указывает, как приложение должно выделять цвета. Подробности см. в setColorSpec().
- Обеспечивает локализация строк, видимых пользователю, с помощью translate().
- Предоставляет некоторые магические объекты, такие как рабочий стол() и буфер обмена().
- Знает о окнах приложения. Вы можете узнать, какой виджет находится в определённой позиции, используя widgetAt(), получить список topLevelWidgets() и закрыть все окна() и т. д.
- Управляет обработкой курсора мыши, см. setOverrideCursor()
Поскольку объект QApplication выполняет так много инициализаций, его необходимо создать перед созданием любых других объектов, связанных с пользовательским интерфейсом. QApplication также обрабатывает общие аргументы командной строки. Поэтому обычно рекомендуется создать его перед любым интерпретированием или изменением argv в самом приложении.
См. также QCoreApplication, QAbstractEventDispatcher, QEventLoop и QSettings.
Документация свойств
autoSipEnabled : bool
переключает видимость автоматического SIP (панели ввода программного обеспечения)
Установите это свойство в true, чтобы автоматически отображать SIP при вводе в виджеты, которые принимают ввод с клавиатуры. Это свойство влияет только на виджеты с установленным атрибутом WA_InputMethodEnabled и обычно используется для запуска виртуальной клавиатуры на устройствах с очень небольшим или отсутствующим количеством клавиш.
Свойство действует только на платформах, использующих панели ввода программного обеспечения.
Значение по умолчанию зависит от платформы.
Это свойство было добавлено в Qt 4.5.
Функции доступа:
| bool | autoSipEnabled() const |
| void | setAutoSipEnabled(const bool enabled) |
cursorFlashTime : int
Это свойство содержит время мигания курсора текста в миллисекундах
Время мигания — это время, необходимое для отображения, инвертирования и восстановления отображения курсора. Обычно курсор текста отображается половину времени мигания, а затем скрывается на такое же количество времени, но это может варьироваться.
Значение по умолчанию в X11 составляет 1000 миллисекунд. В Windows используется значение из Панели управления, и установка этого свойства задаёт время мигания курсора для всех приложений.
Рекомендуется, чтобы виджеты не кэшировали это значение, так как оно может измениться в любой момент, если пользователь изменит глобальные настройки рабочего стола.
Примечание: Это свойство может содержать отрицательное значение, например, если мигание курсора отключено.
Функции доступа:
| int | cursorFlashTime() |
| void | setCursorFlashTime(int) |
doubleClickInterval : int
Это свойство содержит лимит времени в миллисекундах, который отличает двойной щелчок от двух последовательных щелчков мышью
Значение по умолчанию в X11 составляет 400 миллисекунд. В Windows и Mac OS используется значение операционной системы.
Функции доступа:
| int | doubleClickInterval() |
| void | setDoubleClickInterval(int) |
globalStrut : QSize
Это свойство содержит минимальный размер, который должен иметь любой элемент графического интерфейса, с которым может взаимодействовать пользователь
Например, никакая кнопка не должна быть уменьшена до размера, меньшего, чем размер глобальной структуры. Размер структуры следует учитывать при повторной реализации элементов графического интерфейса, которые могут использоваться на сенсорных экранах или аналогичных устройствах ввода.
Пример:
QSize MyWidget::sizeHint() const
{
return QSize(80, 25).expandedTo(QApplication::globalStrut());
} По умолчанию это свойство содержит объект QSize с нулевой шириной и высотой.
Функции доступа:
| QSize | globalStrut() |
| void | setGlobalStrut(const QSize &) |
keyboardInputInterval : int
Это свойство содержит лимит времени в миллисекундах, который отличает нажатие клавиши от двух последовательных нажатий клавиш
Значение по умолчанию в X11 составляет 400 миллисекунд. В Windows и Mac OS используется значение операционной системы.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| int | keyboardInputInterval() |
| void | setKeyboardInputInterval(int) |
startDragDistance : int
Если вы поддерживаете перетаскивание в своем приложении и хотите начать операцию перетаскивания после того, как пользователь переместил курсор на определённое расстояние, удерживая кнопку мыши, вам следует использовать значение этого свойства в качестве минимального требуемого расстояния.
Например, если координаты щелчка мыши хранятся в startPos , а текущие координаты (например, в событии перемещения мыши) — в currentPos, вы можете определить, нужно ли начинать перетаскивание, используя код, подобный этому:
if ((startPos - currentPos).manhattanLength() >=
QApplication::startDragDistance())
startTheDrag(); Qt использует это значение внутри, например, в QFileDialog.
Значение по умолчанию (если платформа не предоставляет другое значение по умолчанию) составляет 10 пикселей.
Функции доступа:
| int | startDragDistance() |
| void | setStartDragDistance(int l) |
См. также startDragTime(), QPoint::manhattanLength() и Перетаскивание.
startDragTime : int
Это свойство содержит время в миллисекундах, которое кнопка мыши должна быть нажата, прежде чем начнется операция перетаскивания
Если вы поддерживаете перетаскивание в своем приложении и хотите начать операцию перетаскивания после того, как пользователь удерживал кнопку мыши в течение определенного периода времени, вы должны использовать значение этого свойства в качестве задержки.
Qt также использует эту задержку внутри, например, в QTextEdit и QLineEdit, для запуска перетаскивания.
Значение по умолчанию составляет 500 мс.
Функции доступа:
| int | startDragTime() |
| void | setStartDragTime(int ms) |
См. также startDragDistance() и Перетаскивание.
styleSheet : QString
Это свойство содержит стиль оформления приложения
По умолчанию это свойство возвращает пустую строку, если пользователь не указывает параметр -stylesheet в командной строке при запуске приложения.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QString | styleSheet() const |
| void | setStyleSheet(const QString &sheet) |
См. также QWidget::setStyle() и Стили Qt.
wheelScrollLines : int
Это свойство содержит количество строк, на которое должен прокручиваться виджет при вращении колесика мыши.
Если значение превышает количество видимых строк виджета, виджет должен интерпретировать операцию прокрутки как одну операцию страницы вверх или страницы вниз. Если виджет является классом представления элементов , то результат прокрутки на одну строку зависит от настроек режима прокрутки виджета. Прокрутка на одну строку может означать прокрутку на один элемент или прокрутку на один пиксель.
По умолчанию это свойство имеет значение 3.
Функции доступа:
| int | wheelScrollLines() |
| void | setWheelScrollLines(int) |
См. также QStyleHints::wheelScrollLines().
windowIcon : QIcon
Это свойство содержит значок окна по умолчанию
Функции доступа:
| QIcon | windowIcon() |
| void | setWindowIcon(const QIcon &icon) |
См. также QWidget::setWindowIcon() и Установка значка приложения.
Документация по членам-функциям
QApplication::QApplication(int &argc, char **argv)
Инициализирует систему окон и создаёт объект приложения с argc аргументами командной строки в argv.
Предупреждение: Данные, на которые ссылаются argc и argv, должны оставаться валидными в течение всего срока жизни объекта QApplication. Кроме того, argc должно быть больше нуля, а argv — содержать по меньшей мере одну допустимую строку.
Глобальный указатель qApp ссылается на этот объект приложения. Должен быть создан только один объект приложения.
Этот объект приложения должен быть создан до создания каких-либо устройств отрисовки (включая виджеты, пиксы, битовые карты и т. д.).
Примечание: argc и argv могут быть изменены, так как Qt удаляет аргументы командной строки, которые он распознаёт.
Все программы Qt автоматически поддерживают следующие параметры командной строки:
- -style= style, устанавливает стиль графического интерфейса приложения. Возможные значения зависят от конфигурации вашей системы. Если вы скомпилировали Qt с дополнительными стилями или имеете дополнительные стили в виде плагинов, они будут доступны по опции командной строки
-style. Вы также можете установить стиль для всех приложений Qt, задав переменную средыQT_STYLE_OVERRIDE. - -style style, эквивалентно вышеописанному.
- -stylesheet= stylesheet, устанавливает стиль приложения styleSheet. Значение должно быть путём к файлу, содержащему таблицу стилей.
Примечание: Относительные URL-адреса в файле таблицы стилей относительны к пути файла таблицы стилей.
- -stylesheet stylesheet, эквивалентно вышеописанному.
- -widgetcount, выводит сообщение отладки в конце о количестве оставшихся не уничтоженных виджетов и максимальном количестве виджетов, существовавших одновременно
- -reverse, устанавливает направление макета приложения на Qt::RightToLeft
- -qmljsdebugger=, активирует отладчик QML/JS с указанным портом. Значение должно иметь формат порт:1234[,block], где block необязателен и заставит приложение ждать, пока к нему не подключится отладчик.
См. также QCoreApplication::arguments().
[virtual] QApplication::~QApplication()
Освобождает все ресурсы системы окон, выделенные этим приложением. Устанавливает глобальную переменную qApp в 0.
[static slot] void QApplication::aboutQt()
Отображает простое диалоговое окно о Qt. Сообщение включает номер версии Qt, используемой приложением.
Это полезно для включения в меню Справка приложения, как показано в примере Меню.
Эта функция является удобным слотом для QMessageBox::aboutQt().
[static] QWidget *QApplication::activeModalWidget()
Возвращает активный модальный виджет.
Модальный виджет — это специальный виджет верхнего уровня, являющийся подклассом QDialog, который устанавливает параметр modal конструктора в true. Модальный виджет должен быть закрыт, прежде чем пользователь сможет продолжить работу с другими частями программы.
Модальные виджеты организованы в стеке. Эта функция возвращает активный модальный виджет в верхней части стека.
См. также activePopupWidget() и topLevelWidgets().
[static] QWidget *QApplication::activePopupWidget()
Возвращает активный всплывающий виджет.
Всплывающий виджет — это специальный виджет верхнего уровня, который устанавливает флаг виджета Qt::WType_Popup, например, виджет QMenu. Когда приложение открывает всплывающий виджет, все события направляются во всплывающее окно. К обычным и модальным виджетам нельзя получить доступ, прежде чем всплывающий виджет не будет закрыт.
Только другие всплывающие виджеты могут быть открыты, когда показан всплывающий виджет. Всплывающие виджеты организованы в стеке. Эта функция возвращает активный всплывающий виджет в верхней части стека.
См. также activeModalWidget() и topLevelWidgets().
[static] QWidget *QApplication::activeWindow()
Возвращает окно приложения верхнего уровня, имеющее фокус ввода с клавиатуры, или 0, если ни одно окно приложения не имеет фокуса. activeWindow() может быть активным, даже если нет focusWidget(), например, если ни один виджет в этом окне не обрабатывает события клавиш.
См. также setActiveWindow(), QWidget::setFocus(), QWidget::hasFocus() и focusWidget().
[static] void QApplication::alert(QWidget *widget, int msec = 0)
Вызывает отображение предупреждения для widget, если окно не является активным. Предупреждение отображается в течение msec миллисекунд. Если msec равно нулю (по умолчанию), предупреждение отображается неопределённое время, пока окно не станет активным снова.
В настоящее время эта функция ничего не делает в Qt для встраиваемой Linux.
В macOS эта функция работает на уровне приложения и заставит значок приложения мигать в доке.
В Windows это вызывает мигание записи окна в панели задач в течение определённого времени. Если msec равно нулю, мигание прекращается, а запись в панели задач меняет цвет (в настоящее время оранжевый).
В X11 это приведет к тому, что окно будет помечено как «требующее внимания». Окно не должно быть скрыто (т.е. на него не должно вызываться hide(), но должно быть каким-то образом отображено), чтобы это работало.
Эта функция была представлена в Qt 4.3.
[static] QWidgetList QApplication::allWidgets()
Возвращает список всех виджетов в приложении.
Список пустой (QList::isEmpty()), если виджетов нет.
Примечание: Некоторые из виджетов могут быть скрыты.
Пример:
void updateAllWidgets()
{
foreach (QWidget *widget, QApplication::allWidgets())
widget->update();
} См. также topLevelWidgets() и QWidget::isVisible().
[static] void QApplication::beep()
Издаёт звуковой сигнал, используя стандартный уровень громкости и звук. Функция не доступна в Qt для встраиваемой Linux.
[static slot] void QApplication::closeAllWindows()
Закрывает все окна верхнего уровня.
Эта функция особенно полезна для приложений с множеством окон верхнего уровня. Например, она может быть подключена к пункту Выход в меню Файл:
const QIcon exitIcon = QIcon::fromTheme("application-exit");
QAction *exitAct = fileMenu->addAction(exitIcon, tr("E&xit"), qApp, &QApplication::closeAllWindows);
exitAct->setShortcuts(QKeySequence::Quit);
exitAct->setStatusTip(tr("Exit the application"));
fileMenu->addAction(exitAct); Окна закрываются в случайном порядке, пока одно из окон не примет событие закрытия. Приложение завершает работу, когда последнее окно было успешно закрыто; это можно отключить, установив quitOnLastWindowClosed в false.
См. также quitOnLastWindowClosed, lastWindowClosed(), QWidget::close(), QWidget::closeEvent(), lastWindowClosed(), QCoreApplication::quit(), topLevelWidgets() и QWidget::isWindow().
[static] QDesktopWidget *QApplication::desktop()
Возвращает виджет рабочего стола (также называемый корневым окном).
Рабочий стол может состоять из нескольких экранов, поэтому, например, неправильно пытаться центрировать виджет в геометрии рабочего стола. QDesktopWidget имеет различные функции для получения полезных геометрий на рабочем столе, такие как QDesktopWidget::screenGeometry() и QDesktopWidget::availableGeometry().
В X11 также можно рисовать на рабочем столе.
[override virtual protected] bool QApplication::event(QEvent *e)
Переопределено из QGuiApplication::event().
[static] int QApplication::exec()
Входит в основной цикл обработки событий и ожидает, пока не будет вызвано exit(), затем возвращает значение, которое было установлено в exit() (которое равно 0, если exit() вызывается через quit()).
Необходимо вызвать эту функцию для запуска обработки событий. Основной цикл обработки событий получает события от системы окон и рассылает их виджетам приложения.
Обычно взаимодействие с пользователем невозможно до вызова exec(). В качестве исключения, модальные виджеты, такие как QMessageBox, могут использоваться до вызова exec(), потому что модальные виджеты вызывают exec(), чтобы запустить локальный цикл обработки событий.
Для того, чтобы ваше приложение выполняло обработку в режиме ожидания, т.е. выполняло специальную функцию всякий раз, когда нет ожидающих событий, используйте QTimer с тайм-аутом 0. Более сложные схемы обработки в режиме ожидания могут быть реализованы с помощью processEvents().
Мы рекомендуем подключать код очистки к сигналу aboutToQuit(), вместо того, чтобы помещать его в функцию вашего приложения main(). Это связано с тем, что на некоторых платформах вызов QApplication::exec() может не возвращаться. Например, на платформе Windows, при выходе пользователя из системы, система завершает процесс после того, как Qt закрывает все окна верхнего уровня. Таким образом, нет гарантии, что приложение успеет выйти из своего цикла обработки событий и выполнить код в конце функции main(), после вызова QApplication::exec().
См. также quitOnLastWindowClosed, QCoreApplication::quit(), QCoreApplication::exit(), QCoreApplication::processEvents() и QCoreApplication::exec().
[signal] void QApplication::focusChanged(QWidget *old, QWidget *now)
Этот сигнал испускается, когда виджет, имеющий фокус клавиатуры, меняется с old на now, например, из-за нажатия клавиши Tab, щелчка по виджету или изменения активного окна. Оба значения old и now могут быть указателями на null.
Сигнал испускается после того, как оба виджета были уведомлены об изменении через QFocusEvent.
Эта функция была представлена в Qt 4.1.
См. также QWidget::setFocus(), QWidget::clearFocus() и Qt::FocusReason.
[static] QWidget *QApplication::focusWidget()
Возвращает виджет приложения, имеющий фокус клавиатуры, или 0, если ни один виджет в этом приложении не имеет фокуса.
См. также QWidget::setFocus(), QWidget::hasFocus(), activeWindow() и focusChanged().
[static] QFont QApplication::font()
Возвращает шрифт по умолчанию для приложения.
См. также setFont(), fontMetrics() и QWidget::font().
[static] QFont QApplication::font(const QWidget *widget)
Это перегруженный метод.
Возвращает шрифт по умолчанию для widget.
См. также fontMetrics() и QWidget::setFont().
[static] QFont QApplication::font(const char *className)
Это перегруженный метод.
Возвращает шрифт для виджетов данного класса className.
См. также setFont() и QWidget::font().
[static] QFontMetrics QApplication::fontMetrics()
Возвращает метрики шрифта отображения (экрана) для шрифта приложения.
См. также font(), setFont(), QWidget::fontMetrics() и QPainter::fontMetrics().
[static] bool QApplication::isEffectEnabled(Qt::UIEffect effect)
Возвращает true, если effect включён; в противном случае возвращает false.
По умолчанию Qt попытается использовать настройки рабочего стола. Чтобы предотвратить это, вызовите setDesktopSettingsAware(false).
Примечание: Все эффекты отключены на экранах с цветовой глубиной менее 16 бит.
См. также setEffectEnabled() и Qt::UIEffect.
[static] Qt::NavigationMode QApplication::navigationMode()
Возвращает, какой тип навигации по фокусу использует Qt.
Эта функция доступна только в Qt для встраиваемой Linux.
Этот метод был введен в Qt 4.6.
См. также setNavigationMode() и keypadNavigationEnabled().
[override virtual] bool QApplication::notify(QObject *receiver, QEvent *e)
Переопределено из QGuiApplication::notify().
[static] QPalette QApplication::palette(const QWidget *widget)
Если передан widget, возвращается палитра по умолчанию для класса виджета. Это может быть или не быть палитрой приложения. В большинстве случаев нет специальной палитры для определённых типов виджетов, но одним из заметных исключений является всплывающее меню в Windows, если пользователь определил специальный цвет фона для меню в настройках отображения.
См. также setPalette() и QWidget::palette().
[static] QPalette QApplication::palette(const char *className)
Это перегруженный метод.
Возвращает палитру для виджетов данного класса className.
См. также setPalette() и QWidget::palette().
[static] void QApplication::setActiveWindow(QWidget *active)
Устанавливает активное окно в виджет active в ответ на системное событие. Функция вызывается из платформных обработчиков событий.
Предупреждение: Эта функция не устанавливает фокус клавиатуры на активный виджет. Используйте QWidget::activateWindow() вместо этого.
Она устанавливает атрибуты activeWindow() и focusWidget(), отправляет соответствующие события WindowActivate/WindowDeactivate и FocusIn/FocusOut всем соответствующим виджетам. Затем окно будет отображено в активном состоянии (например, курсоры в строках редактирования будут мигать), и для него будут включены всплывающие подсказки.
См. также activeWindow() и QWidget::activateWindow().
[static] void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)
Включает эффект пользовательского интерфейса effect, если enable равно true, в противном случае эффект не будет использоваться.
Примечание: Все эффекты отключены на экранах с цветовой глубиной менее 16 бит.
См. также isEffectEnabled(), Qt::UIEffect и setDesktopSettingsAware().
[static] void QApplication::setFont(const QFont &font, const char *className = nullptr)
Изменяет шрифт по умолчанию приложения на font. Если className передан, изменение применяется только к классам, которые наследуют от className (как указано в QObject::inherits()).
При запуске приложения шрифт по умолчанию зависит от системного окна. Он может меняться в зависимости как от версии системного окна, так и от локали. Эта функция позволяет переопределить шрифт по умолчанию; однако переопределение может быть плохой идеей, например, некоторые локали нуждаются в дополнительных больших шрифтах для поддержки своих специальных символов.
Предупреждение: Не используйте эту функцию вместе с Qt Style Sheets. Шрифт приложения можно настроить с помощью свойства стиля "font". Чтобы установить жирный шрифт для всех QPushButtons, установите свойство styleSheet приложения как "QPushButton { font: bold }"
См. также font(), fontMetrics() и QWidget::setFont().
[static] void QApplication::setNavigationMode(Qt::NavigationMode mode)
Устанавливает тип навигации по фокусу, который Qt должен использовать в mode.
Эта функция доступна только в Qt для встраиваемой Linux.
Этот метод был введен в Qt 4.6.
См. также navigationMode() и keypadNavigationEnabled().
[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)
Изменяет палитру по умолчанию приложения на palette.
Если className передан, изменение применяется только к виджетам, которые наследуют от className (как указано в QObject::inherits()). Если className равен 0, изменение затрагивает все виджеты, тем самым переопределяя любые ранее установленные палитры, специфичные для класса.
Палитра может быть изменена в соответствии с текущим стилем графического интерфейса пользователя в QStyle::polish().
Предупреждение: Не используйте эту функцию совместно с Qt Style Sheets. При использовании таблиц стилей палитру виджета можно настроить с помощью свойств "color", "background-color", "selection-color", "selection-background-color" и "alternate-background-color".
Примечание: Некоторые стили не используют палитру для всего рисования, например, если они используют собственные движки темы. Это относится к стилям Windows Vista и macOS.
См. также QWidget::setPalette(), palette() и QStyle::polish().
[static] void QApplication::setStyle(QStyle *style)
Устанавливает стиль графического интерфейса приложения на style. Владение объектом стиля передаётся QApplication, поэтому QApplication удалит объект стиля при выходе приложения или при установке нового стиля, если старый стиль всё ещё является родителем объекта приложения.
Пример использования:
QApplication::setStyle(QStyleFactory::create("Fusion")); При переключении стилей приложения цветовая палитра устанавливается обратно к исходным цветам или системным значениям по умолчанию. Это необходимо, так как определённые стили должны адаптировать цветовую палитру, чтобы полностью соответствовать руководству по стилю.
Указание стиля до задания палитры, т.е. до создания QApplication, приведёт к тому, что приложение будет использовать QStyle::standardPalette() для палитры.
Предупреждение: Qt таблицы стилей в настоящее время не поддерживаются для пользовательских подклассов QStyle. Мы планируем решить эту проблему в будущей версии.
См. также style(), QStyle, setPalette() и desktopSettingsAware().
END_OF_DOCUMENT_MARKER
[static] QStyle *QApplication::setStyle(const QString &style)
Это перегруженный метод.
Запрашивает объект QStyle для style у QStyleFactory.
Строка должна быть одной из QStyleFactory::keys(), обычно "windows", "windowsvista", "fusion" или "macintosh". Имена стилей нечувствительны к регистру.
Возвращает nullptr если передан неизвестный style, в противном случае возвращенный объект QStyle устанавливается в качестве стиля графического интерфейса приложения.
Предупреждение: Для правильной установки стиля приложения лучше всего вызвать этот метод до конструктора QApplication, если это возможно.
[static] QStyle *QApplication::style()
Возвращает объект стиля приложения.
См. также setStyle() и QStyle.
[static] QWidget *QApplication::topLevelAt(const QPoint &point)
Возвращает виджет верхнего уровня в заданной точке point; возвращает nullptr если такого виджета нет.
[static] QWidget *QApplication::topLevelAt(int x, int y)
Это перегруженный метод.
Возвращает виджет верхнего уровня в точке (x, y); возвращает 0, если такого виджета нет.
[static] QWidgetList QApplication::topLevelWidgets()
Возвращает список виджетов верхнего уровня (окна) в приложении.
Примечание: Некоторые из виджетов верхнего уровня могут быть скрыты, например, всплывающая подсказка, если она в данный момент не отображается.
Пример:
void showAllHiddenTopLevelWidgets()
{
foreach (QWidget *widget, QApplication::topLevelWidgets()) {
if (widget->isHidden())
widget->show();
}
} См. также allWidgets(), QWidget::isWindow() и QWidget::isHidden().
[static] QWidget *QApplication::widgetAt(const QPoint &point)
Возвращает виджет в глобальной позиции экрана point или 0, если там нет виджета Qt.
Этот метод может быть медленным.
См. также QCursor::pos(), QWidget::grabMouse() и QWidget::grabKeyboard().
[static] QWidget *QApplication::widgetAt(int x, int y)
Это перегруженный метод.
Возвращает виджет в глобальной позиции экрана (x, y) или 0, если там нет виджета Qt.
Документация макросов
qApp
Глобальный указатель, ссылающийся на уникальный объект приложения. Эквивалентно QCoreApplication::instance(), но отброшен как указатель на QApplication, поэтому допустимо только когда уникальный объект приложения является QApplication.
См. также QCoreApplication::instance() и qGuiApp.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qapplication.html