Класс QSystemTrayIcon
Класс QSystemTrayIcon предоставляет значок приложения в системном трее. Подробнее...
| Заголовок: | #include <QSystemTrayIcon> |
| qmake: | QT += widgets |
| С момента: | Qt 4.2 |
| Наследует: | QObject |
Типы публичного доступа
| перечисление | ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick } |
| перечисление | MessageIcon { NoIcon, Information, Warning, Critical } |
Свойства
- 1 свойство унаследовано от QObject
Функции публичного доступа
| QSystemTrayIcon(QObject *parent = nullptr) | |
| QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr) | |
| виртуальный | ~QSystemTrayIcon() |
| QMenu * | contextMenu() const |
| QRect | geometry() const |
| QIcon | icon() const |
| bool | isVisible() const |
| void | setContextMenu(QMenu *menu) |
| void | setIcon(const QIcon &icon) |
| void | setToolTip(const QString &tip) |
| QString | toolTip() const |
- 34 функции публичного доступа унаследованы от QObject
Свойства публичного доступа
| void | hide() |
| void | setVisible(bool visible) |
| void | show() |
| void | showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000) |
| void | showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000) |
- 1 свойство публичного доступа унаследовано от QObject
Сигналы
| void | activated(QSystemTrayIcon::ActivationReason reason) |
| void | messageClicked() |
- 2 сигнала унаследованы от QObject
Статические публичные члены
| bool | isSystemTrayAvailable() |
| bool | supportsMessages() |
- 10 статических публичных членов унаследованы от QObject
Переопределённые защищённые функции
| виртуальный bool | event(QEvent *e) override |
- 9 защищённых функций унаследованы от QObject
Дополнительные унаследованные члены
- 1 публичная переменная унаследована от QObject
- 9 защищённых функций унаследованы от QObject
- 2 защищённых переменных унаследованы от QObject
Подробное описание
Класс QSystemTrayIcon предоставляет значок приложения в системном трее.
Современные операционные системы обычно предоставляют специальную область на рабочем столе, называемую системным треем или областью уведомлений, где долго работающие приложения могут отображать значки и короткие сообщения.
Класс QSystemTrayIcon может быть использован на следующих платформах:
- Все поддерживаемые версии Windows.
- Все менеджеры окон и независимые реализации трея для X11, которые реализуют спецификацию системного трея XEmbed http://standards.freedesktop.org/systemtray-spec/systemtray-spec-0.2.html freedesktop.org.
- Все среды рабочего стола X11, которые реализуют спецификацию D-Bus http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierItem, включая последние версии KDE и Unity.
- Все поддерживаемые версии macOS.
Чтобы проверить, присутствует ли системный трей на рабочем столе пользователя, вызовите статическую функцию QSystemTrayIcon::isSystemTrayAvailable().
Чтобы добавить запись в системный трей, создайте объект QSystemTrayIcon, вызовите setContextMenu() для предоставления контекстного меню для значка и вызовите show() для отображения его в системном трее. Сообщения о состоянии уведомлений ("балонные сообщения") можно отображать в любое время с помощью showMessage().
Если системный трей недоступен при создании значка системного трея, но становится доступным позже, QSystemTrayIcon автоматически добавит запись для приложения в системный трей, если значок visible.
Сигнал activated() генерируется, когда пользователь активирует значок.
Только в X11, когда запрашивается подсказка, QSystemTrayIcon получает QHelpEvent типа QEvent::ToolTip. Кроме того, QSystemTrayIcon получает события колесика мыши типа QEvent::Wheel. Они не поддерживаются ни на какой другой платформе.
См. также QDesktopServices, QDesktopWidget, Интеграция с рабочим столом и Пример значка системного трея.
Документация по типам членов
перечисление QSystemTrayIcon::ActivationReason
Это перечисление описывает причину активации системного трея.
| Постоянная | Значение | Описание |
|---|---|---|
QSystemTrayIcon::Unknown |
0 |
Неизвестная причина |
QSystemTrayIcon::Context |
1 |
Было запрошено контекстное меню для записи в системном трее |
QSystemTrayIcon::DoubleClick |
2 |
Запись в системном трее была дважды щелкнута. |
Примечание: В macOS двойной щелчок будет генерироваться только в том случае, если контекстное меню не задано, так как меню открывается при нажатии мыши
| Константа | Значение | Описание |
|---|---|---|
QSystemTrayIcon::Trigger |
3 |
Иконка системного трея была щелкнута |
QSystemTrayIcon::MiddleClick |
4 |
Иконка системного трея была щелкнута средней кнопкой мыши |
См. также activated().
enum QSystemTrayIcon::MessageIcon
Этот перечисление описывает иконку, отображаемую при отображении всплывающего сообщения.
| Константа | Значение | Описание |
|---|---|---|
QSystemTrayIcon::NoIcon |
0 |
Иконка не отображается. |
QSystemTrayIcon::Information |
1 |
Отображается иконка информации. |
QSystemTrayIcon::Warning |
2 |
Отображается стандартная иконка предупреждения. |
QSystemTrayIcon::Critical |
3 |
Отображается критическая иконка предупреждения. |
См. также QMessageBox.
Документация свойств
icon : QIcon
Это свойство содержит иконку системного трея
В Windows размер иконки системного трея составляет 16x16; в X11 предпочтительный размер составляет 22x22. Иконка будет масштабирована до соответствующего размера по мере необходимости.
Функции доступа:
| QIcon | icon() const |
| void | setIcon(const QIcon &icon) |
toolTip : QString
Это свойство содержит всплывающую подсказку для записи в системном трее
В некоторых системах длина всплывающей подсказки ограничена. Всплывающая подсказка будет усечена при необходимости.
Функции доступа:
| QString | toolTip() const |
| void | setToolTip(const QString &tip) |
visible : bool
Это свойство указывает, отображается ли запись в системном трее
Установка этого свойства в true или вызов show() отображает значок системного трея; установка этого свойства в false или вызов hide() скрывает его.
Функции доступа:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Документация по членам-функциям
QSystemTrayIcon::QSystemTrayIcon(QObject *parent = nullptr)
Создаёт объект QSystemTrayIcon с заданным parent.
Иконка изначально невидима.
См. также visible.
QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)
Создаёт объект QSystemTrayIcon с заданной icon и parent.
Иконка изначально невидима.
См. также visible.
[virtual] QSystemTrayIcon::~QSystemTrayIcon()
Удаляет иконку из системного трея и освобождает все выделенные ресурсы.
[signal] void QSystemTrayIcon::activated(QSystemTrayIcon::ActivationReason reason)
Этот сигнал излучается, когда пользователь активирует иконку системного трея. reason указывает причину активации. QSystemTrayIcon::ActivationReason перечисляет различные причины.
См. также QSystemTrayIcon::ActivationReason.
QMenu *QSystemTrayIcon::contextMenu() const
Возвращает текущее контекстное меню для записи в системном трее.
См. также setContextMenu().
[override virtual protected] bool QSystemTrayIcon::event(QEvent *e)
Переопределено из QObject::event().
QRect QSystemTrayIcon::geometry() const
Возвращает геометрию иконки системного трея в координатах экрана.
Эта функция была добавлена в Qt 4.3.
См. также visible.
[slot] void QSystemTrayIcon::hide()
Скрывает запись в системном трее.
[static] bool QSystemTrayIcon::isSystemTrayAvailable()
Возвращает true если системный трей доступен; в противном случае возвращает false.
Если системный трей в данный момент недоступен, но становится доступным позже, QSystemTrayIcon автоматически добавит запись в системный трей, если она visible.
[signal] void QSystemTrayIcon::messageClicked()
Этот сигнал излучается, когда пользователь щелкнул сообщение, отображенное с помощью showMessage().
В настоящее время этот сигнал не отправляется в macOS.
Примечание: Мы следуем поведению Microsoft Windows, поэтому сигнал также излучается, когда пользователь щелкает по значку трея с отображаемым сообщением всплывающего окна.
См. также activated().
void QSystemTrayIcon::setContextMenu(QMenu *menu)
Устанавливает указанное menu в качестве контекстного меню для значка системного трея.
Меню будет отображаться при запросе пользователем контекстного меню для значка системного трея щелчком мыши.
В macOS в настоящее время это преобразуется в NSMenu, поэтому сигнал aboutToHide() не излучается.
Примечание: значок системного трея не берет на себя владение меню. Вы должны убедиться, что оно удалено в соответствующее время, например, создавая меню с подходящим объектом родителя.
См. также contextMenu().
[slot] void QSystemTrayIcon::show()
Отображает значок в системном трее.
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)
Отображает всплывающее сообщение для записи со заданным title, message и icon на время, указанное в millisecondsTimeoutHint. title и message должны быть текстовыми строками.
Сообщение может быть щелкнуто пользователем; при этом излучается сигнал messageClicked().
Обратите внимание, что отображение сообщений зависит от конфигурации системы и пользовательских настроек, и сообщения могут вообще не отображаться. Поэтому на него не следует полагаться как на единственный способ предоставления критической информации.
В Windows параметр millisecondsTimeoutHint обычно игнорируется системой, когда приложение имеет фокус.
В Qt 5.2 превращено в слот.
Эта функция была добавлена в Qt 4.3.
См. также show() и supportsMessages().
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)
Эта функция перегружает showMessage().
Отображает всплывающее сообщение для записи со заданным title, message и настраиваемой icon на время, указанное в millisecondsTimeoutHint.
Эта функция была добавлена в Qt 5.9.
[static] bool QSystemTrayIcon::supportsMessages()
Возвращает true если системный трей поддерживает всплывающие сообщения; в противном случае возвращает false.
См. также showMessage().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qsystemtrayicon.html