Класс QApplication
Класс QApplication управляет потоком управления и основными настройками приложения GUI. Подробнее...
| Заголовок: | #include <QApplication> |
| qmake: | QT += widgets |
| Наследует: | QGuiApplication |
Свойства
|
|
Открытые функции
| QApplication(int &argc, char **argv) | |
| virtual | ~QApplication() |
| QString | styleSheet() const |
Переопределенные открытые функции
| virtual bool | notify(QObject *receiver, QEvent *e) override |
Открытые слоты
| void | aboutQt() |
| bool | autoSipEnabled() const |
| void | closeAllWindows() |
| void | setAutoSipEnabled(const bool enabled) |
| void | setStyleSheet(const QString &sheet) |
Сигналы
| void | focusChanged(QWidget *old, QWidget *now) |
Статические открытые члены
| 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() |
| 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() |
Реализованные защищённые функции
| virtual bool | event(QEvent *e) override |
Макросы
| qApp |
Подробное описание
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:
- Он инициализирует приложение настройками рабочего стола пользователя, такими как palette(), font() и doubleClickInterval(). Он отслеживает эти свойства на случай, если пользователь изменит настройки рабочего стола глобально, например, через какой-либо панель управления.
- Он выполняет обработку событий, что означает, что он получает события от базовой системы окон и рассылает их соответствующим виджетам. С помощью sendEvent() и postEvent() вы можете отправлять свои собственные события виджетам.
- Он анализирует общие аргументы командной строки и устанавливает своё внутреннее состояние соответственно. Более подробная информация содержится в документации конструктора ниже.
- Он определяет вид и ощущения приложения, которые инкапсулированы в объекте QStyle. Это можно изменить во время выполнения с помощью setStyle().
- Он обеспечивает локализация строк, видимых пользователю, через translate().
- Он предоставляет некоторые магические объекты, такие как desktop() и clipboard().
- Он знает о окнах приложения. Вы можете узнать, какой виджет находится в определенной позиции, используя widgetAt(), получить список topLevelWidgets() и закрыть все окна с помощью closeAllWindows() и т.д.
- Он управляет обработкой курсора мыши, см. setOverrideCursor()
Поскольку объект QApplication выполняет так много инициализаций, его необходимо создать перед созданием любых других объектов, связанных с пользовательским интерфейсом. QApplication также обрабатывает общие аргументы командной строки. Поэтому обычно рекомендуется создавать его до любого интерпретирования или модификации argv в самом приложении.
| Группы функций | |
|---|---|
| Настройки системы | desktopSettingsAware(), setDesktopSettingsAware(), cursorFlashTime(), setCursorFlashTime(), doubleClickInterval(), setDoubleClickInterval(), setKeyboardInputInterval(), wheelScrollLines(), setWheelScrollLines(), palette(), setPalette(), font(), setFont(), fontMetrics(). |
| Обработка событий | exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), hasPendingEvents(), notify(). |
| Стили GUI | style(), setStyle(). |
| Обработка текста | installTranslator(), removeTranslator() translate(). |
| Виджеты | allWidgets(), topLevelWidgets(), desktop(), activePopupWidget(), activeModalWidget(), clipboard(), focusWidget(), activeWindow(), widgetAt(). |
| Расширенная обработка курсора | overrideCursor(), setOverrideCursor(), restoreOverrideCursor(). |
| Разное | closeAllWindows(), startingUp(), closingDown(). |
См. также 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
Это свойство содержит минимальный размер любого GUI-элемента, с которым пользователь может взаимодействовать.
Например, ни одна кнопка не должна быть уменьшена до размера, меньшего, чем размер глобальной выступы. Размер выступы следует учитывать при реализации GUI-элементов, которые могут использоваться на сенсорных экранах или аналогичных устройствах ввода.
Пример:
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
Это свойство содержит количество строк, на которое должен прокручиваться виджет при вращении колесика мыши.
Если значение превышает количество видимых строк в виджете, виджет должен интерпретировать операцию прокрутки как одну операцию перелистывания страницы вверх или перелистывания страницы вниз. Если виджет — это виджет класса представления элементов, то результат прокрутки на одну строку зависит от настроек режима прокрутки виджета scroll mode. Прокрутка на одну строку может означать прокрутку на один элемент или прокрутку на один пиксель.
По умолчанию это свойство имеет значение 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().
[static slot] void QApplication::aboutQt()
Отображает простое диалоговое окно о Qt. Сообщение включает номер версии Qt, используемой приложением.
Это полезно для включения в меню Справка приложения, как показано в примере Меню.
Эта функция является удобным слотом для QMessageBox::aboutQt().
[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().
[signal] void QApplication::focusChanged(QWidget *old, QWidget *now)
Этот сигнал излучается, когда виджет, у которого есть фокус клавиатуры, изменился с old на now, т. е. из-за нажатия клавиши Tab, щелчка мышью по виджету или изменения активного окна. old и now могут быть nullptr.
Сигнал излучается после того, как оба виджета были уведомлены об изменении через QFocusEvent.
Функция была представлена в Qt 4.1.
См. также QWidget::setFocus(), QWidget::clearFocus() и Qt::FocusReason.
[virtual] QApplication::~QApplication()
Освобождает любые ресурсы системы окон, выделенные этим приложением. Устанавливает глобальную переменную qApp в значение nullptr.
[static] QWidget *QApplication::activeModalWidget()
Возвращает активный модальный виджет.
Модальный виджет — это специальный виджет верхнего уровня, который является подклассом QDialog и задаёт параметр modal конструктора как true. Модальный виджет должен быть закрыт, прежде чем пользователь сможет продолжить работу с другими частями программы.
Модальные виджеты организованы в стеке. Эта функция возвращает активный модальный виджет вверху стека.
См. также activePopupWidget() и topLevelWidgets().
[static] QWidget *QApplication::activePopupWidget()
Возвращает активный всплывающий виджет.
Всплывающий виджет — это специальный виджет верхнего уровня, который устанавливает флаг виджета Qt::WType_Popup, например, виджет QMenu. Когда приложение открывает всплывающий виджет, все события отправляются всплывающему виджету. К обычным виджетам и модальным виджетам нельзя получить доступ, пока всплывающий виджет не будет закрыт.
Только другие всплывающие виджеты могут быть открыты, когда всплывающий виджет отображается. Всплывающие виджеты организованы в стеке. Эта функция возвращает активный всплывающий виджет вверху стека.
См. также activeModalWidget() и topLevelWidgets().
[static] QWidget *QApplication::activeWindow()
Возвращает окно приложения верхнего уровня, имеющее фокус ввода с клавиатуры, или nullptr , если ни одно окно приложения не имеет фокуса. Может быть активное окно activeWindow(), даже если нет focusWidget(), например, если ни один виджет в этом окне не принимает события клавиатуры.
См. также setActiveWindow(), QWidget::setFocus(), QWidget::hasFocus() и focusWidget().
[static] void QApplication::alert(QWidget *widget, int msec = 0)
Вызывает отображение уведомления для widget, если окно не является активным. Уведомление отображается в течение msec миллисекунд. Если msec равно нулю (по умолчанию), уведомление отображается неопределённо, пока окно снова не станет активным.
В настоящее время эта функция не выполняет никаких действий в Qt for Embedded Linux.
В macOS эта функция работает на уровне приложения и вызывает подпрыгивание значка приложения в доке.
В Windows это вызывает мигание записи окна в панели задач в течение определённого времени. Если msec равно нулю, мигание останавливается, а запись в панели задач принимает другой цвет (в настоящее время оранжевый).
В X11 это приводит к тому, что окно помечается как требующее внимания; окно не должно быть скрыто (т. е. на нём не должно вызываться hide(), а должно быть каким-то образом видимо), чтобы это работало.
Функция была представлена в Qt 4.3.
[static] QWidgetList QApplication::allWidgets()
Возвращает список всех виджетов в приложении.
Список пуст (QList::isEmpty()), если виджетов нет.
Примечание: Некоторые виджеты могут быть скрыты.
Пример:
void updateAllWidgets()
{
const QWidgetList allWidgets = QApplication::allWidgets();
for (QWidget *widget : allWidgets)
widget->update();
} См. также topLevelWidgets() и QWidget::isVisible().
[static] void QApplication::beep()
Проигрывает звук колокольчика с использованием стандартной громкости и звука. Функция не доступна в Qt for Embedded Linux.
[static] QDesktopWidget *QApplication::desktop()
Возвращает виджет рабочего стола (также называется корневым окном).
Рабочий стол может состоять из нескольких экранов, поэтому, например, попытка центрировать виджет в геометрии рабочего стола будет неверной. QDesktopWidget имеет различные функции для получения полезных геометрий рабочего стола, такие как QDesktopWidget::screenGeometry() и QDesktopWidget::availableGeometry().
В X11 также можно рисовать на рабочем столе.
[override virtual protected] bool QApplication::event(QEvent *e)
Переопределяет: QGuiApplication::event(QEvent *e).
[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().
[static] QWidget *QApplication::focusWidget()
Возвращает виджет приложения, у которого есть фокус ввода с клавиатуры, или nullptr если ни один виджет в этом приложении не имеет фокуса.
См. также 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 для Embedded Linux.
Эта функция была добавлена в Qt 4.6.
См. также setNavigationMode().
[override virtual] bool QApplication::notify(QObject *receiver, QEvent *e)
Переопределяет: QGuiApplication::notify(QObject *object, QEvent *event).
[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. Шрифт приложения может быть настроен с помощью свойства «шрифт» в стиле таблиц стилей. Чтобы установить полужирный шрифт для всех QPushButtons, установите свойство приложения styleSheet() как «QPushButton { font: bold }»
См. также font(), fontMetrics() и QWidget::setFont().
[static] void QApplication::setNavigationMode(Qt::NavigationMode mode)
Устанавливает тип навигации по фокусу, который Qt должен использовать, на mode.
Эта функция доступна только в Qt для Embedded Linux.
Эта функция была добавлена в Qt 4.6.
См. также navigationMode().
[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)
Изменяет палитру по умолчанию приложения на palette.
Если className передан, изменение применяется только к виджетам, которые наследуют className (как указано в QObject::inherits()). Если className оставлен нулевым, изменение повлияет на все виджеты, тем самым переопределив любые ранее установленные палитры, специфичные для класса.
Палитра может быть изменена в соответствии с текущим стилем графического интерфейса в QStyle::polish().
Предупреждение: Не используйте эту функцию совместно с Qt Style Sheets. При использовании таблиц стилей палитра виджета может быть настроена с помощью свойств «цвет», «фон», «выделение», «выделение фона» и «альтернативный фон».
Примечание: Некоторые стили не используют палитру для всего рисования, например, если они используют родные механизмы темы. Это относится к стилям 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().
[static] QStyle *QApplication::setStyle(const QString &style)
Это перегруженный метод.
Запрашивает объект QStyle для style у QStyleFactory.
Строка должна быть одной из QStyleFactory::keys(), обычно одной из "windows", "windowsvista", "fusion" или "macintosh". Имена стилей нечувствительны к регистру.
Возвращает nullptr если передан неизвестный стиль, в противном случае объект QStyle, возвращённый, устанавливается в качестве стиля графического интерфейса приложения.
Предупреждение: Для обеспечения правильной установки стиля приложения рекомендуется вызывать эту функцию до конструктора QApplication, если это возможно.
[static] QStyle *QApplication::style()
Возвращает объект стиля приложения.
См. также setStyle() и QStyle.
[static] QWidget *QApplication::topLevelAt(const QPoint &point)
Возвращает верхний виджет по заданной точке; возвращает nullptr если такого виджета нет.
[static] QWidget *QApplication::topLevelAt(int x, int y)
Это перегруженная функция.
Возвращает верхний виджет в точке (x, y); возвращает 0, если такого виджета нет.
[static] QWidgetList QApplication::topLevelWidgets()
Возвращает список верхних виджетов (окон) в приложении.
Примечание: Некоторые из верхних виджетов могут быть скрыты, например, всплывающая подсказка, если в данный момент подсказка не отображается.
Пример:
void showAllHiddenTopLevelWidgets()
{
const QWidgetList topLevelWidgets = QApplication::topLevelWidgets();
for (QWidget *widget : topLevelWidgets) {
if (widget->isHidden())
widget->show();
}
} См. также allWidgets(), QWidget::isWindow() и QWidget::isHidden().
[static] QWidget *QApplication::widgetAt(const QPoint &point)
Возвращает виджет в глобальной позиции экрана point или nullptr если там нет виджета Qt.
Эта функция может быть медленной.
См. также QCursor::pos(), QWidget::grabMouse() и QWidget::grabKeyboard().
[static] QWidget *QApplication::widgetAt(int x, int y)
Это перегруженная функция.
Возвращает виджет в глобальной позиции экрана (x, y), или nullptr если там нет виджета 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.14/qapplication.html