Spec-Zone.ru › Qt 5.9

Класс 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)
  • 6 открытых функций унаследовано от QGuiApplication
  • 3 открытых функции унаследовано от QCoreApplication
  • 32 открытых функции унаследовано от 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)
  • 13 сигналов унаследовано от QGuiApplication
  • 1 сигнала унаследован от QCoreApplication
  • 2 сигнала унаследовано от QObject

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

QWidget * activeModalWidget()
QWidget * activePopupWidget()
QWidget * activeWindow()
void alert(QWidget *widget, int msec = 0)
QWidgetList allWidgets()
void beep()
int cursorFlashTime()
QDesktopWidget * desktop()
int doubleClickInterval()
int exec()
QWidget * focusWidget()
QFont font()
QFont font(const QWidget *widget)
QFont font(const char *className)
QFontMetrics fontMetrics()
QSize globalStrut()
bool isEffectEnabled(Qt::UIEffect effect)
int keyboardInputInterval()
Qt::NavigationMode navigationMode()
QPalette palette(const QWidget *widget)
QPalette palette(const char *className)
void setActiveWindow(QWidget *active)
void setCursorFlashTime(int)
void setDoubleClickInterval(int)
void setEffectEnabled(Qt::UIEffect effect, bool enable = true)
void setFont(const QFont &font, const char *className = Q_NULLPTR)
void setGlobalStrut(const QSize &)
void setKeyboardInputInterval(int)
void setNavigationMode(Qt::NavigationMode mode)
void setPalette(const QPalette &palette, const char *className = Q_NULLPTR)
void setStartDragDistance(int l)
void setStartDragTime(int ms)
void setStyle(QStyle *style)
QStyle * setStyle(const QString &style)
void setWheelScrollLines(int)
void setWindowIcon(const QIcon &icon)
int startDragDistance()
int startDragTime()
QStyle * style()
QWidget * topLevelAt(const QPoint &point)
QWidget * topLevelAt(int x, int y)
QWidgetList topLevelWidgets()
int wheelScrollLines()
QWidget * widgetAt(const QPoint &point)
QWidget * widgetAt(int x, int y)
QIcon windowIcon()
  • 44 статических общедоступных членов, унаследованных от QGuiApplication
  • 38 статических общедоступных членов, унаследованных от QCoreApplication
  • 11 статических общедоступных членов, унаследованных от QObject

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

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

Макросы

qApp

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

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

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

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

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

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

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

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

    return app->exec();
}

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

Основные области ответственности QApplication:

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

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

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

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

По умолчанию это свойство имеет значение 3.

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

int wheelScrollLines()
void setWheelScrollLines(int)

См. также QStyleHints::wheelScrollLines().

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

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

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

[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, т. е. из-за нажатия клавиши Tab, щелчка по виджету или изменения активного окна. Оба значения old и now могут быть равны null-указателю.

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

[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::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. Шрифт приложения можно настроить с помощью свойства "font" в таблице стилей. Чтобы установить жирный шрифт для всех QPushButtons, установите таблицу стилей приложения как "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 = Q_NULLPTR)

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

См. также 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/qt-5.9/qapplication.html

Spec-Zone.ru

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