Spec-Zone.ru › Qt 5.6

Класс QApplication

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

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

Общедоступные типы

Перечисление ColorSpec { NormalColor, CustomColor, ManyColor }

Свойства

  • autoMaximizeThreshold : int
  • autoSipEnabled : bool
  • cursorFlashTime : int
  • doubleClickInterval : int
  • globalStrut : QSize
  • keyboardInputInterval : int
  • startDragDistance : int
  • startDragTime : int
  • styleSheet : QString
  • wheelScrollLines : int
  • windowIcon : QIcon
  • 6 свойств, унаследованных от QGuiApplication
  • 5 свойств, унаследованных от QCoreApplication
  • 1 свойство, унаследованное от QObject

Общедоступные функции

QApplication(int &argc, char **argv)
virtual ~QApplication()
QString styleSheet() const

Переопределенные общедоступные функции

virtual bool notify(QObject *receiver, QEvent *e)
  • 6 общедоступных функций, унаследованных от QGuiApplication
  • 3 общедоступных функции, унаследованных от QCoreApplication
  • 31 общедоступных функций, унаследованных от QObject

Общедоступные слоты

void aboutQt()
int autoMaximizeThreshold() const
bool autoSipEnabled() const
void closeAllWindows()
void setAutoMaximizeThreshold(const int threshold)
void setAutoSipEnabled(const bool enabled)
void setStyleSheet(const QString &sheet)
  • 1 общедоступный слот, унаследованный от QCoreApplication
  • 1 общедоступный слот, унаследованный от QObject

Сигналы

void focusChanged(QWidget *old, QWidget *now)
  • 12 сигналов, унаследованных от QGuiApplication
  • 1 сигнал, унаследованный от QCoreApplication
  • 2 сигнала, унаследованных от QObject

Статические общедоступные члены

QWidget * активныйМодальныйВиджет()
QWidget * активныйПопअपВиджет()
QWidget * активноеОкно()
void вывестиПредупреждение(QWidget *widget, int msec = 0)
QWidgetList всеВиджеты()
void сигнал()
int цветСпецификация()
int времяМиганияКурсора()
QDesktopWidget * рабочийСтол()
int интервалДвойногоНажатия()
int выполнять()
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 spec)
void установитьВремяМиганияКурсора(int)
void установитьИнтервалДвойногоНажатия(int)
void включитьЭффект(Qt::UIEffect effect, bool enable = true)
void установитьШрифт(const QFont &font, const char *className = Q_NULLPTR)
void установитьГлобальнуюОтступ(const QSize &)
void установитьИнтервалВводаКлавиатуры(int)
void установитьРежимНавигации(Qt::NavigationMode mode)
void установитьПалитру(const QPalette &palette, const char *className = Q_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 иконкаОкна()
  • 42 статические публичные члены унаследованные от QGuiApplication
  • 39 статические публичные члены унаследованные от QCoreApplication
  • 11 статические публичные члены унаследованные от QObject

Переопределённые защищённые функции

virtual bool событие(QEvent *e)
  • 1 защищённая функция унаследованная от QGuiApplication
  • 1 защищённая функция унаследованная от QCoreApplication
  • 9 защищённые функции унаследованные от QObject

Макросы

qApp

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

Класс QApplication управляет потоком управления и основными настройками приложения GUI.

QApplication специализируется QGuiApplication некоторыми функциями, необходимыми для приложений, основанных на QWidget. Он обрабатывает инициализацию и завершение, специфичные для виджетов.

Для любого приложения GUI, использующего Qt, существует ровно один объект QApplication, независимо от того, имеет ли приложение 0, 1, 2 или более окон в данный момент. Для приложений Qt, не основанных на QWidget, используйте QGuiApplication, поскольку он не зависит от библиотеки QtWidgets.

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

QCoreApplication* createApplication(int &argc, char *argv[])
{
    for (int i = 1; i < argc; ++i)
        if (!qstrcmp(argv[i], "-no-gui"))
            return new QCoreApplication(argc, argv);
    return new QApplication(argc, argv);
}

int main(int argc, char* argv[])
{
    QScopedPointer<QCoreApplication> app(createApplication(argc, argv));

    if (qobject_cast<QApplication *>(app.data())) {
       // start GUI version...
    } else {
       // start non-GUI version...
    }

    return app->exec();
}

Объект QApplication доступен через функцию instance(), которая возвращает указатель, эквивалентный глобальному указателю qApp.

QApplication отвечает за следующие основные области:

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

Документация типов членов

перечисление QApplication::ColorSpec

Константа Значение Описание
QApplication::NormalColor 0 стандартная политика выделения цветов
QApplication::CustomColor 1 то же, что и NormalColor для X11; выделяет цвета в палитру по требованию под Windows
QApplication::ManyColor 2 лучший выбор для приложений, использующих тысячи цветов

См. setColorSpec() для получения полной информации.

Документация свойств

autoMaximizeThreshold : int

определяет порог для автоматического максимального размера виджетов

Порог автоматического максимального размера доступен только в Qt для Windows CE.

Это свойство определяет порог размера окна в процентах от размера экрана. Если минимальный размер подсказки окна превышает порог, вызов show() автоматически приведет к максимальному размеру окна.

Установка порога на 100 или больше означает, что виджет всегда будет максимальным. В противном случае, установка порога на 50 означает, что виджет будет максимальным только в том случае, если минимальный размер подсказки по вертикали составляет по крайней мере 50% от вертикального размера экрана.

Установка порога на -1 отключает эту функцию.

В Windows CE значение по умолчанию -1 (т.е. отключено). В Windows Mobile значение по умолчанию - 40.

Это свойство было введено в Qt 4.4.

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

int autoMaximizeThreshold() const
void setAutoMaximizeThreshold(const int threshold)

autoSipEnabled : bool

переключает видимость автоматического SIP (панели ввода программного обеспечения)

Установите это свойство в true , чтобы автоматически отображать SIP при вводе в виджеты, которые принимают ввод с клавиатуры. Это свойство влияет только на виджеты с установленным атрибутом WA_InputMethodEnabled и обычно используется для запуска виртуальной клавиатуры на устройствах с очень небольшим или вообще отсутствующим количеством физических кнопок.

Это свойство работает только на платформах, которые используют панели ввода программного обеспечения, такие как Windows CE.

Значение по умолчанию зависит от платформы.

Это свойство было введено в Qt 4.5.

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

bool autoSipEnabled() const
void setAutoSipEnabled(const bool enabled)

cursorFlashTime : int

Это свойство содержит время мигания (переключения) курсора текста в миллисекундах.

Время мигания - это время, необходимое для отображения, инвертирования и восстановления отображения курсора. Обычно текстовый курсор отображается половину времени мигания курсора, а затем скрывается на такое же количество времени, но это может варьироваться.

Значение по умолчанию на X11 составляет 1000 миллисекунд. В Windows используется значение из Панели управления, и установка этого свойства устанавливает время мигания курсора для всех приложений.

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

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

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

int cursorFlashTime()
void setCursorFlashTime(int)

doubleClickInterval : int

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

Значение по умолчанию на X11 составляет 400 миллисекунд. В Windows и Mac OS используется значение операционной системы.

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

int doubleClickInterval()
void setDoubleClickInterval(int)

globalStrut : QSize

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

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

Пример:

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

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

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

QSize globalStrut()
void setGlobalStrut(const QSize &)

keyboardInputInterval : int

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

Значение по умолчанию на X11 составляет 400 миллисекунд. В Windows и Mac OS используется значение операционной системы.

Это свойство было введено в Qt 4.2.

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

int keyboardInputInterval()
void setKeyboardInputInterval(int)

startDragDistance : int

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

Например, если позиция курсора при щелчке сохраняется в startPos , а текущая позиция (например, в событии перемещения мыши) - в currentPos, вы можете определить, следует ли начинать перетаскивание с помощью кода, подобного этому:

int main(int argc, char *argv[])
{
    QApplication::setDesktopSettingsAware(false);
    QApplication app(argc, argv);
    ...
    return app.exec();
}

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)

windowIcon : QIcon

Это свойство содержит значок окна по умолчанию.

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

QIcon windowIcon()
QIcon windowIcon()
void setWindowIcon(const QIcon &icon)
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, задаёт стиль GUI приложения. Возможные значения зависят от конфигурации вашей системы. Если вы скомпилировали Qt с дополнительными стилями или имеете дополнительные стили в виде плагинов, они будут доступны в параметре командной строки -style. Вы также можете установить стиль для всех приложений Qt, установив переменную среды QT_STYLE_OVERRIDE.
  • -style style, эквивалентно пункту выше.
  • -stylesheet= stylesheet, задаёт styleSheet приложения. Значение должно быть путём к файлу, содержащему таблицу стилей.

    Примечание: Относительные URL-адреса в файле таблицы стилей относительны к пути к файлу таблицы стилей.

  • -stylesheet stylesheet, эквивалентно пункту выше.
  • -widgetcount, выводит сообщение отладки в конце о количестве неразрушенных виджетов и максимальном количестве виджетов, существовавших одновременно
  • -reverse, устанавливает направление макета приложения в Qt::RightToLeft
  • -qmljsdebugger=, активирует отладчик QML/JS со указанным портом. Значение должно быть в формате port:1234[,block], где блок является необязательным и заставит приложение ждать подключения к нему отладчика.

См. также QCoreApplication::arguments().

[virtual] QApplication::~QApplication()

Освобождает системные ресурсы окон, выделенные этим приложением. Устанавливает глобальную переменную qApp в 0.

[static slot] void QApplication::aboutQt()

Отображает простое диалоговое окно о Qt. Сообщение включает номер версии Qt, используемой приложением.

Это полезно для включения в меню Справка приложения, как показано в примере Меню.

Эта функция является удобным слотом для QMessageBox::aboutQt().

[static] QWidget *QApplication::activeModalWidget()

Возвращает активный модальный виджет.

Модальный виджет — это специальный виджет верхнего уровня, являющийся подклассом QDialog, который задаёт параметр модального окна конструктора как true. Модальный виджет должен быть закрыт, прежде чем пользователь сможет продолжить работу с другими частями программы.

Модальные виджеты организованы в стеке. Эта функция возвращает активный модальный виджет в верхней части стека.

См. также activePopupWidget() и topLevelWidgets().

[static] QWidget *QApplication::activePopupWidget()

Возвращает активный всплывающий виджет.

Всплывающий виджет — это специальный виджет верхнего уровня, который устанавливает флаг виджета Qt::WType_Popup, например, виджет QMenu. Когда приложение открывает всплывающий виджет, все события отправляются в всплывающее окно. К обычным виджетам и модальным виджетам нельзя получить доступ, прежде чем всплывающий виджет не будет закрыт.

При открытом всплывающем виджете открытие других всплывающих виджетов невозможно. Всплывающие виджеты организованы в стеке. Эта функция возвращает активный всплывающий виджет в верхней части стека.

См. также activeModalWidget() и topLevelWidgets().

[static] QWidget *QApplication::activeWindow()

Возвращает окно приложения верхнего уровня, имеющее фокус ввода с клавиатуры, или 0, если ни одно окно приложения не имеет фокуса. Может быть активное окно activeWindow(), даже если нет focusWidget(), например, если ни один виджет в этом окне не обрабатывает события клавиатуры.

См. также setActiveWindow(), QWidget::setFocus(), QWidget::hasFocus() и focusWidget().

[static] void QApplication::alert(QWidget *widget, int msec = 0)

Вызывает отображение предупреждения для widget, если окно не является активным окном. Предупреждение отображается в течение msec миллисекунд. Если msec равно нулю (по умолчанию), то предупреждение отображается неопределённо, пока окно не станет активным вновь.

В настоящее время эта функция ничего не делает в Qt для встраиваемой Linux.

В macOS эта функция работает на уровне приложения и вызывает мигание значка приложения в панели задач.

В Windows это вызывает мигание записи окна в панели задач в течение определённого времени. Если msec равно нулю, мигание прекращается, а запись в панели задач меняет цвет (в настоящее время оранжевый).

В X11 это заставляет окно отметить как «требующее внимания»; окно не должно быть скрыто (т. е. не должно быть вызова hide() на нём, но должно быть каким-то образом видимым), чтобы это работало.

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

[static] QWidgetList QApplication::allWidgets()

Возвращает список всех виджетов в приложении.

Список пустой (QList::isEmpty()), если виджетов нет.

Примечание: Некоторые виджеты могут быть скрыты.

Пример:

void updateAllWidgets()
{
    foreach (QWidget *widget, QApplication::allWidgets())
        widget->update();
}

См. также topLevelWidgets() и QWidget::isVisible().

[static] void QApplication::beep()

Издает звуковой сигнал, используя значение по умолчанию громкости и звука. Функция не доступна в Qt для встраиваемой Linux.

[static slot] void QApplication::closeAllWindows()

Закрывает все окна верхнего уровня.

Эта функция особенно полезна для приложений с множеством окон верхнего уровня. Например, она может быть связана с пунктом Выход в меню Файл:

    const QIcon exitIcon = QIcon::fromTheme("application-exit");
    QAction *exitAct = fileMenu->addAction(exitIcon, tr("E&xit"), qApp, &QApplication::closeAllWindows);
    exitAct->setShortcuts(QKeySequence::Quit);
    exitAct->setStatusTip(tr("Exit the application"));
    fileMenu->addAction(exitAct);

Окна закрываются в случайном порядке, пока одно окно не примет событие закрытия. Приложение завершает работу, когда последнее окно было успешно закрыто; это можно отключить, установив quitOnLastWindowClosed в false.

См. также quitOnLastWindowClosed, lastWindowClosed(), QWidget::close(), QWidget::closeEvent(), lastWindowClosed(), QCoreApplication::quit(), topLevelWidgets() и QWidget::isWindow().

[static] int QApplication::colorSpec()

Возвращает спецификацию цвета.

См. также QApplication::setColorSpec().

[static] QDesktopWidget *QApplication::desktop()

Возвращает виджет рабочего стола (также называемый корневым окном).

Рабочий стол может состоять из нескольких экранов, поэтому неправильно, например, пытаться центрировать какой-либо виджет в геометрии рабочего стола. QDesktopWidget имеет различные функции для получения полезной геометрии на рабочем столе, такие как QDesktopWidget::screenGeometry() и QDesktopWidget::availableGeometry().

В X11 также возможно рисовать на рабочем столе.

[virtual protected] bool QApplication::event(QEvent *e)

Переопределено из QObject::event().

[static] int QApplication::exec()

Входит в главный цикл обработки событий и ждёт, пока не будет вызвано exit(), затем возвращает значение, которое было установлено для exit() (которое равно 0, если exit() вызван через quit()).

Для начала обработки событий необходимо вызвать эту функцию. Главный цикл обработки событий получает события от системы окон и рассылает их виджетам приложения.

Обычно никакое взаимодействие с пользователем не может происходить до вызова exec(). В качестве специального случая модальные виджеты, такие как QMessageBox, могут быть использованы до вызова exec(), потому что модальные виджеты вызывают exec() для запуска локального цикла обработки событий.

Чтобы ваше приложение выполняло обработку в режиме ожидания, т.е. выполняло специальную функцию всякий раз, когда нет ожидающих событий, используйте QTimer с таймаутом 0. Более сложные схемы обработки в режиме ожидания могут быть реализованы с помощью processEvents().

Рекомендуется подключать код очистки к сигналу aboutToQuit(), а не помещать его в функцию вашего приложения main(). Это связано с тем, что на некоторых платформах вызов QApplication::exec() может не возвращаться. Например, на платформе Windows, когда пользователь выходит из системы, система завершает процесс после того, как Qt закрывает все окна верхнего уровня. Следовательно, нет гарантии, что у приложения будет время завершить свой цикл обработки событий и выполнить код в конце функции main(), после вызова QApplication::exec().

См. также quitOnLastWindowClosed, QCoreApplication::quit(), QCoreApplication::exit(), QCoreApplication::processEvents(), и QCoreApplication::exec().

[signal] void QApplication::focusChanged(QWidget *old, QWidget *now)

Этот сигнал излучается, когда виджет, имеющий фокус клавиатуры, изменился с old на now, т.е. из-за нажатия пользователем клавиши табуляции, щелчка внутри виджета или изменения активного окна. Оба old и now могут быть нулевым указателем.

Сигнал излучается после того, как оба виджета были уведомлены об изменении через QFocusEvent.

Эта функция была представлена в Qt 4.1.

См. также QWidget::setFocus(), QWidget::clearFocus(), и Qt::FocusReason.

[static] QWidget *QApplication::focusWidget()

Возвращает виджет приложения, имеющий фокус ввода с клавиатуры, или 0, если ни один виджет в этом приложении не имеет фокуса.

См. также QWidget::setFocus(), QWidget::hasFocus(), activeWindow(), и focusChanged().

[static] QFont QApplication::font()

Возвращает шрифт по умолчанию для приложения.

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

[static] QFont QApplication::font(const QWidget *widget)

Это перегруженная функция.

Возвращает шрифт по умолчанию для widget.

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

[static] QFont QApplication::font(const char *className)

Это перегруженная функция.

Возвращает шрифт для виджетов данного класса className.

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

[static] QFontMetrics QApplication::fontMetrics()

Возвращает метрики шрифта отображения (экрана) для шрифта приложения.

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

[static] bool QApplication::isEffectEnabled(Qt::UIEffect effect)

Возвращает true, если effect включен; в противном случае возвращает false.

По умолчанию Qt будет пытаться использовать настройки рабочего стола. Чтобы предотвратить это, вызовите setDesktopSettingsAware(false).

Примечание: Все эффекты отключены на экранах с глубиной цвета менее 16 бит.

См. также setEffectEnabled() и Qt::UIEffect.

[static] Qt::NavigationMode QApplication::navigationMode()

Возвращает, какой вид навигации по фокусу использует Qt.

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

Примечание: В Windows CE эта функция по умолчанию отключена для mkspecs устройств с сенсорным экраном. Чтобы включить навигацию с помощью клавиатуры, скомпилируйте Qt с определённой QT_KEYPAD_NAVIGATION.

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

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

[virtual] bool QApplication::notify(QObject *receiver, QEvent *e)

Переопределено из QCoreApplication::notify().

[static] QPalette QApplication::palette(const QWidget *widget)

Это перегруженная функция.

Если передаётся widget, возвращается палитра по умолчанию для класса виджета. Это может или не может быть палитра приложения. В большинстве случаев нет специальной палитры для определённых типов виджетов, но одним из заметных исключений является всплывающее меню в Windows, если пользователь определил специальный цвет фона для меню в настройках отображения.

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

[static] QPalette QApplication::palette(const char *className)

Это перегруженная функция.

Возвращает палитру для виджетов заданного className.

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

[static] void QApplication::setActiveWindow(QWidget *active)

Устанавливает активное окно на виджет active в ответ на системное событие. Функция вызывается из обработчиков событий, специфичных для платформы.

Предупреждение: Эта функция не устанавливает фокус клавиатуры на активный виджет. Вместо этого вызовите QWidget::activateWindow().

Она устанавливает атрибуты activeWindow() и focusWidget() и отправляет соответствующие события WindowActivate/WindowDeactivate и FocusIn/FocusOut всем соответствующим виджетам. Затем окно будет отображено в активном состоянии (например, курсоры в строках редактирования будут мигать), и для него будут включены всплывающие подсказки.

См. также activeWindow() и QWidget::activateWindow().

[static] void QApplication::setColorSpec(int spec)

Устанавливает спецификацию цвета для приложения на spec.

Спецификация цвета контролирует, как приложение выделяет цвета при запуске на дисплее с ограниченным количеством цветов, например, на дисплеях с 8 битами/256 цветами.

Спецификация цвета должна быть установлена до создания объекта QApplication.

Варианты:

  • QApplication::NormalColor. Это стратегия выделения цвета по умолчанию. Используйте этот вариант, если ваше приложение использует кнопки, меню, тексты и пиксельмапы с небольшим количеством цветов. С этим вариантом приложение использует системные глобальные цвета. Это хорошо работает для большинства приложений под X11, но на платформе Windows это может привести к потере четкости нестандартных цветов.
  • QApplication::CustomColor. Используйте этот вариант, если ваше приложение нуждается в небольшом количестве пользовательских цветов. В X11 этот вариант эквивалентен NormalColor. В Windows Qt создаёт Windows-палитру и выделяет цвета в неё по мере необходимости.
  • QApplication::ManyColor. Используйте этот вариант, если ваше приложение очень «прожорливо» к цветам, например, если оно требует тысячи цветов. В X11 эффект такой:
    • Для дисплеев с 256 цветами, которые имеют визуальный элемент истинного цвета максимум с 256 цветами, используется визуальный элемент по умолчанию, и цвета выделяются из цветового куба. Цветовой куб — это «веб-палитра» 6x6x6 (216 цветов) (красные, зелёные и синие компоненты всегда имеют одно из следующих значений: 0x00, 0x33, 0x66, 0x99, 0xCC или 0xFF), но количество цветов можно изменить с помощью параметра -ncols. Пользователь может принудительно заставить приложение использовать визуальный элемент истинного цвета с помощью параметра -visual.
    • Для дисплеев с 256 цветами, которые имеют визуальный элемент истинного цвета более 256 цветов, используется этот визуальный элемент. Например, серверы X Silicon Graphics поддерживают эту функцию. Они предоставляют 8-битовый визуальный элемент по умолчанию, но могут предоставить истинно цветной, если попросить.

    В Windows Qt создаёт Windows-палитру и заполняет её цветовым кубом.

Обратите внимание, что варианты CustomColor и ManyColor могут привести к миганию цветовой палитры: приложение переднего плана получает (большую часть) доступных цветов, а окна заднего плана будут выглядеть менее привлекательно.

Пример:

int main(int argc, char *argv[])
{
    QApplication::setColorSpec(QApplication::ManyColor);
    QApplication app(argc, argv);
    ...
    return app.exec();
}

См. также colorSpec().

[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 = Q_NULLPTR)

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

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

Предупреждение: Не используйте эту функцию совместно с Qt Style Sheets. Шрифт приложения можно настроить, используя свойство «шрифт» в стилях. Чтобы установить жирный шрифт для всех кнопок QPushButtons, задайте свойство приложения styleSheet() как «QPushButton { font: bold }»

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

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

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

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

Примечание: В Windows CE эта функция по умолчанию отключена для mkspecs устройств с сенсорным управлением. Для включения навигации с помощью клавиатуры необходимо скомпилировать Qt с определением QT_KEYPAD_NAVIGATION.

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

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

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

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

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

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

Предупреждение: Не используйте эту функцию совместно с Qt Style Sheets. При использовании таблиц стилей палитра виджета может быть настроена с помощью свойств «цвет», «цвет фона», «цвет выделения», «цвет фона выделения» и «цвет фона чередующейся строки».

Примечание: Некоторые стили не используют палитру для всех отрисовок, например, если они используют собственные движки тем. Это относится к стилям Windows XP, 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() в качестве палитры.

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

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

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

Это перегруженная функция.

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

Строка должна быть одним из ключей QStyleFactory::keys(), обычно «windows», «fusion», «windowsxp» или «macintosh». Названия стилей нечувствительны к регистру.

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

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

[static] QStyle *QApplication::style()

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

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

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

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

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

Это перегруженная функция.

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

[static] QWidgetList QApplication::topLevelWidgets()

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

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

Пример:

void showAllHiddenTopLevelWidgets()
{
    foreach (QWidget *widget, QApplication::topLevelWidgets()) {
        if (widget->isHidden())
            widget->show();
    }
}

См. также allWidgets(), QWidget::isWindow() и QWidget::isHidden().

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

Возвращает виджет в глобальной позиции экрана point, или 0, если там нет виджета Qt.

Эта функция может быть медленной.

См. также QCursor::pos(), QWidget::grabMouse() и QWidget::grabKeyboard().

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

Это перегруженная функция.

Возвращает виджет в глобальной позиции экрана (x, y), или 0, если там нет виджета Qt.

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

qApp

Глобальный указатель, ссылающийся на единственный объект приложения. Он эквивалентен QCoreApplication::instance(), но преобразован к указателю на QApplication, поэтому действителен только тогда, когда единственный объект приложения является QApplication.

См. также QCoreApplication::instance() и qGuiApp.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qapplication.html

Spec-Zone.ru

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