Spec-Zone.ru › Qt 5.13

Класс QApplication

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

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

Свойства

  • autoSipEnabled : bool
  • cursorFlashTime : int
  • doubleClickInterval : int
  • globalStrut : QSize
  • 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 * активныйМодальныйВиджет()
QWidget * активныйВиджетПопАпа()
QWidget * активноеОкно()
void сообщение(QWidget *widget, int msec = 0)
QWidgetList всеВиджеты()
void сигнал()
int времяМорганияКурсора()
QDesktopWidget * рабочийСтол()
int интервалДвойногоЩелчка()
int exec()
QWidget * виджетФокуса()
QFont шрифт()
QFont шрифт(const QWidget *widget)
QFont шрифт(const char *className)
QFontMetrics метрикаШрифта()
QSize глобальныйОтступ()
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 установитьГлобальныйОтступ(const QSize &)
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 * виджетВТочке(const QPoint &point)
QWidget * виджетВТочке(int x, int y)
QIcon иконкаОкна()

РеализованныеЗащищённыеФункции

virtual bool событие(QEvent *e) override

Макросы

приложение

ПодробноеОписание

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(), которая возвращает указатель, эквивалентный глобальному указателю приложение.

Основные задачи объекта QApplication:

  • Он инициализирует приложение с настройками рабочего стола пользователя, такими как palette(), font() и doubleClickInterval(). Он отслеживает эти свойства на случай, если пользователь изменит настройки рабочего стола глобально, например, через какой-либо панель управления.
  • Он обрабатывает события, что означает, что он получает события от базовой систем окна и рассылает их соответствующим виджетам. Используя sendEvent() и postEvent(), вы можете отправлять свои собственные события виджетам.
  • Он анализирует общие аргументы командной строки и устанавливает своё внутреннее состояние соответственно. Более подробную информацию см. в документации конструктора ниже.
  • Он определяет внешний вид приложения, который инкапсулирован в объекте QStyle. Его можно изменить во время выполнения с помощью setStyle().
  • Он указывает, как приложение должно выделять цвета. Подробности см. в setColorSpec().
  • Он обеспечивает локализованный перевод строк, видимых пользователю, через 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().
Использование цвета colorSpec(), setColorSpec().
Обработка текста 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)

globalStrut : QSize

Это свойство содержит минимальный размер любого графического элемента, с которым пользователь может взаимодействовать.

Например, размер никакой кнопки не должен быть меньше размера глобального отступа. Размер отступа следует учитывать при повторной реализации графических элементов управления, которые могут использоваться на сенсорных экранах или аналогичных устройствах ввода.

Пример:

QSize MyWidget::sizeHint() const
{
    return QSize(80, 25).expandedTo(QApplication::globalStrut());
}

По умолчанию это свойство содержит объект QSize с нулевой шириной и высотой.

Функции доступа:

QSize globalStrut()
void setGlobalStrut(const QSize &)

keyboardInputInterval : int

Это свойство содержит лимит времени в миллисекундах, который отличает нажатие клавиши от двух последовательных нажатий клавиш.

Значение по умолчанию в X11 — 400 миллисекунд. В Windows и 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

Это свойство содержит количество строк, на которое нужно прокрутить виджет при вращении колесика мыши.

Если значение превышает количество видимых строк виджета, виджет должен интерпретировать операцию прокрутки как одну операцию прокрутки страницы вверх или прокрутки страницы вниз. Если виджет представляет собой класс виджета списка элементов, то результат прокрутки на одну строку зависит от настройки режима прокрутки виджета 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 с указанным портом. Значение должно иметь формат 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, который задаёт модальный параметр конструктора как 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 для встроенных 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 для встроенных 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 for Embedded Linux.

Эта функция была добавлена в Qt 4.6.

См. также setNavigationMode() и keypadNavigationEnabled().

[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. Шрифт приложения можно настроить, используя свойство "font" в стиле CSS. Чтобы установить жирный шрифт для всех кнопок QPushButton, установите стиль приложения styleSheet() как "QPushButton { font: bold }"

См. также font(), fontMetrics(), и QWidget::setFont().

[static] void QApplication::setNavigationMode(Qt::NavigationMode mode)

Устанавливает способ навигации по фокусу, который Qt должен использовать, на mode.

Эта функция доступна только в Qt for Embedded Linux.

Эта функция была добавлена в Qt 4.6.

См. также navigationMode() и keypadNavigationEnabled().

[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)

Изменяет палитру по умолчанию приложения на palette.

Если передан className, изменение применяется только к виджетам, которые наследуют className (как сообщается функцией QObject::inherits()). Если className равен 0, изменение затрагивает все виджеты, тем самым переопределяя ранее установленные палитры, специфичные для класса.

Палитра может быть изменена в соответствии с текущим стилем графического интерфейса в QStyle::polish().

Предупреждение: Не используйте эту функцию вместе с Qt Style Sheets. При использовании таблиц стилей палитра виджета может быть настраиваема с помощью свойств "color", "background-color", "selection-color", "selection-background-color" и "alternate-background-color".

Примечание: Некоторые стили не используют палитру для всего рисования, например, если они используют собственные механизмы тем. Это относится к стилям Windows Vista и macOS.

См. также QWidget::setPalette(), palette(), и QStyle::polish().

[static] void QApplication::setStyle(QStyle *style)

Устанавливает стиль графического интерфейса приложения на style. Владение объектом стиля передаётся QApplication, поэтому QApplication удалит объект стиля при выходе приложения или при установке нового стиля, если старый стиль ещё является родителем объекта приложения.

Пример использования:

QApplication::setStyle(QStyleFactory::create("Fusion"));

При переключении стилей приложения цветовая палитра устанавливается обратно к начальным цветам или системным значениям по умолчанию. Это необходимо, так как некоторые стили должны адаптировать цветовую палитру, чтобы полностью соответствовать руководству по стилю.

Установка стиля до установки палитры, т. е. до создания QApplication, заставит приложение использовать QStyle::standardPalette() для палитры.

Предупреждение: В настоящее время таблицы стилей Qt не поддерживаются для пользовательских подклассов QStyle. Мы планируем устранить эту проблему в будущей версии.

См. также style(), QStyle, setPalette(), и desktopSettingsAware().

END_OF_DOCUMENT_MARKER

[static] QStyle *QApplication::setStyle(const QString &style)

Это перегруженный метод.

Запрашивает объект QStyle для style из QStyleFactory.

Строка должна быть одной из QStyleFactory::keys(), обычно "windows", "windowsvista", "fusion" или "macintosh". Имена стилей нечувствительны к регистру.

Возвращает nullptr если передан неизвестный style, в противном случае возвращаемый объект QStyle устанавливается как стиль графического интерфейса приложения.

Предупреждение: Для правильной установки стиля приложения рекомендуется вызывать этот метод до конструктора QApplication, если это возможно.

[static] QStyle *QApplication::style()

Возвращает объект стиля приложения.

См. также setStyle() и QStyle.

[static] QWidget *QApplication::topLevelAt(const QPoint &point)

Возвращает виджет верхнего уровня по заданной point; возвращает nullptr если такого виджета нет.

[static] QWidget *QApplication::topLevelAt(int x, int y)

Это перегруженный метод.

Возвращает виджет верхнего уровня в точке (x, y); возвращает 0, если такого виджета нет.

[static] QWidgetList QApplication::topLevelWidgets()

Возвращает список виджетов верхнего уровня (окон) в приложении.

Примечание: Некоторые виджеты верхнего уровня могут быть скрыты, например, всплывающая подсказка, если она в данный момент не отображается.

Пример:

void showAllHiddenTopLevelWidgets()
{
    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.

Документация по макросам

QApplication::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.13/qapplication.html

Spec-Zone.ru

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