Spec-Zone.ru › Qt 5.15

Класс QApplication

Класс QApplication управляет потоком управления графического приложения и основными настройками. Подробнее...

Заголовок: #include <QApplication>
qmake: QT += widgets
Наследует: QGuiApplication
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Свойства

  • autoSipEnabled : bool
  • cursorFlashTime : int
  • doubleClickInterval : int
  • keyboardInputInterval : int
  • startDragDistance : int
  • startDragTime : int
  • styleSheet : QString
  • wheelScrollLines : int
  • windowIcon : QIcon

Открытые функции

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API