Класс QApplication
Класс QApplication управляет потоком управления графического приложения и основными настройками. Подробнее...
| Заголовок: | #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 | времяМиганияКурсора() |
| QDesktopWidget * | рабочийСтол() |
| int | интервалДвойногоЩелкания() |
| int | exec() |
| QWidget * | widgetФокуса() |
| QFont | шрифт() |
| QFont | шрифт(const QWidget *widget) |
| QFont | шрифт(const char *className) |
| QFontMetrics | метрикаШрифта() |
| bool | эффектВключен(Qt::UIEffect effect) |
| int | интервалВводаСКлавиатуры() |
| Qt::NavigationMode | режимНавигации() |
| QPalette | панельЦветов(const QWidget *widget) |
| QPalette | панельЦветов(const char *className) |
| void | установитьАктивныйОкно(QWidget *active) |
| void | установитьВремяМиганияКурсора(int) |
| void | установитьИнтервалДвойногоЩелкания(int) |
| void | включитьЭффект(Qt::UIEffect effect, bool enable = true) |
| void | установитьШрифт(const QFont &font, const char *className = nullptr) |
| void | установитьИнтервалВводаСКлавиатуры(int) |
| void | установитьРежимНавигации(Qt::NavigationMode mode) |
| void | установитьПанельЦветов(const QPalette &palette, const char *className = nullptr) |
| void | установитьРасстояниеНачалаПеретаскивания(int l) |
| void | установитьВремяНачалаПеретаскивания(int ms) |
| void | установитьСтиль(QStyle *style) |
| QStyle * | установитьСтиль(const QString &style) |
| void | установитьКоличествоЛинийПрокруткиКолесиком(int) |
| void | установитьИконкуОкна(const QIcon &icon) |
| int | расстояниеНачалаПеретаскивания() |
| int | времяНачалаПеретаскивания() |
| QStyle * | стиль() |
| QWidget * | верхнийУровеньВТочке(const QPoint &point) |
| QWidget * | верхнийУровеньВТочке(int x, int y) |
| QWidgetList | верхниеУровниВиджетов() |
| int | количествоЛинийПрокруткиКолесиком() |
| QWidget * | widgetВТочке(const QPoint &point) |
| QWidget * | widgetВТочке(int x, int y) |
| QIcon | иконкаОкна() |
Переопределённые Защищённые Функции
| virtual bool | обработкаСобытия(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 и macOS используется значение операционной системы.
Функции доступа:
| int | doubleClickInterval() |
| void | setDoubleClickInterval(int) |
keyboardInputInterval : int
Это свойство содержит предельное время в миллисекундах, отличающее нажатие клавиши от двух последовательных нажатий клавиш
Значение по умолчанию в X11 составляет 400 миллисекунд. В Windows и macOS используется значение операционной системы.
Это свойство было добавлено в 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 с указанным портом. Значение должно иметь формат port: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().
[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 для встроенной 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)
Включает эффект UI 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 Стилями. Шрифт приложения можно настроить, используя свойство стиля "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().
[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)
Изменяет палитру приложения на palette.
Если className передан, изменение применяется только к виджетам, которые унаследовали от className (как указано в QObject::inherits()). Если className оставлен нулевым, изменение затрагивает все виджеты, тем самым переопределяя любые ранее заданные палитры, специфичные для класса.
Палитра может быть изменена в соответствии с текущим стилем графического интерфейса пользователя в QStyle::polish().
Предупреждение: Не используйте эту функцию вместе с Qt Стилями. При использовании стилей палитра виджета может быть настраиваема с помощью свойств "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().
[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.15/qapplication.html