Spec-Zone.ru › Qt 5.11

Класс 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
  • 7 свойств унаследовано от QGuiApplication
  • 5 свойств унаследовано от QCoreApplication
  • 1 свойство унаследовано от QObject

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

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

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

virtual bool notify(QObject *receiver, QEvent *e) override
  • 9 открытых функций унаследовано от QGuiApplication
  • 6 открытых функций унаследовано от QCoreApplication
  • 34 открытых функции унаследовано от QObject

Открытые слоты

void aboutQt()
bool autoSipEnabled() const
void closeAllWindows()
void setAutoSipEnabled(const bool enabled)
void setStyleSheet(const QString &sheet)
  • 1 открытый слот унаследован от QCoreApplication
  • 1 открытый слот унаследован от QObject

Сигналы

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

Статические открытые члены

QWidget * активныйМодальныйВиджет()
QWidget * активныйПопअपВиджет()
QWidget * активныйОкно()
void сигнализировать(QWidget *widget, int msec = 0)
QWidgetList всеВиджеты()
void сигналить()
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)
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 иконкаОкна()
  • 47 статические публичные члены, унаследованные от QGuiApplication
  • 40 статические публичные члены, унаследованные от QCoreApplication
  • 10 статические публичные члены, унаследованные от QObject

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

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

Макросы

приложение

Дополнительные унаследованные члены

  • 1 публичная переменная, унаследованная от QGuiApplication
  • 1 публичная переменная, унаследованная от QCoreApplication
  • 1 публичная переменная, унаследованная от QObject
  • 1 защищенная функция, унаследованная от QGuiApplication
  • 1 защищенная функция, унаследованная от QCoreApplication
  • 9 защищенных функций, унаследованных от QObject
  • 2 защищенных переменных, унаследованных от QObject

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

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

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

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

Некоторые приложения графического интерфейса (GUI) предоставляют специальный пакетный режим, т. е. предоставляют аргументы командной строки для выполнения задач без ручного вмешательства. В таком режиме без графического интерфейса (non-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:

  • Он инициализирует приложение с настройками рабочего стола пользователя, такими как 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 и 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, вы можете определить, следует ли начинать перетаскивание с помощью кода подобного этому:

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], где блок является необязательным и заставит приложение ждать, пока к нему не подключится отладчик.

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

[virtual] QApplication::~QApplication()

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

[static slot] void QApplication::aboutQt()

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

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

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

[static] QWidget *QApplication::activeModalWidget()

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

Модальный виджет — это специальный виджет верхнего уровня, который является подклассом QDialog, указывающим параметр modal конструктора как 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] QDesktopWidget *QApplication::desktop()

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

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

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

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

Переопределено из QGuiApplication::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 для встраиваемой Linux.

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

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

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

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

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

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

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

Эта функция доступна только в Qt для встраиваемой Linux.

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

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

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

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

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

Палитра может изменяться в соответствии с текущим стилем графического интерфейса в 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().

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

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

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

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

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

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

[static] QStyle *QApplication::style()

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

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

[static] QWidget *QApplication::topLevelAt(const QPoint &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.11/qapplication.html

Spec-Zone.ru

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