Класс QWhatsThis
Класс QWhatsThis предоставляет простое описание любого виджета, то есть отвечает на вопрос "Что это?". Подробнее...
| Заголовок: | #include <QWhatsThis> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
Статические публичные члены
| QAction * | createAction(QObject *parent = nullptr) |
| void | enterWhatsThisMode() |
| void | hideText() |
| bool | inWhatsThisMode() |
| void | leaveWhatsThisMode() |
| void | showText(const QPoint &pos, const QString &text, QWidget *w = nullptr) |
Подробное описание
"What's This?" справка является частью системы онлайн-справки приложения и предоставляет пользователям информацию о функциональности и использовании конкретного виджета. Тексты справки "What's This?" обычно длиннее и подробнее, чем всплывающие подсказки tooltips, но в целом предоставляют меньше информации, чем та, которая предоставляется отдельными окнами справки.
QWhatsThis предоставляет одно окно с текстом пояснения, которое появляется, когда пользователь спрашивает "Что это?". Стандартный способ для пользователя задать вопрос — переместить фокус на соответствующий виджет и нажать Shift+F1. Текст справки появляется немедленно; он исчезает, как только пользователь что-то делает. (Обратите внимание, что если есть ярлык для Shift+F1, этот механизм не будет работать.) Некоторые диалоговые окна предоставляют кнопку «?» (?), которую пользователи могут нажать, чтобы войти в режим "What's This?"; затем они щелкают по соответствующему виджету, чтобы отобразить окно "What's This?". Также можно предоставить пункт меню или кнопку на панели инструментов для переключения в режим "What's This?".
Чтобы добавить текст "What's This?" к виджету или действию, просто вызовите QWidget::setWhatsThis() или QAction::setWhatsThis().
Текст может быть как форматированным, так и обычным. Если вы укажете строку с форматированием для богатого текста, она будет отображена с использованием стандартной таблицы стилей, что позволит встраивать изображения в отображаемый текст. Для максимальной скорости стандартная таблица стилей использует простой метод определения, может ли текст быть отображен как простой текст. Подробности см. в Qt::mightBeRichText().
newAct = new QAction(tr("&New"), this);
newAct->setShortcut(tr("Ctrl+N"));
newAct->setStatusTip(tr("Create a new file"));
newAct->setWhatsThis(tr("Click this option to create a new file.")); Альтернативный способ входа в режим "What's This?" — вызвать createAction() и добавить возвращенный QAction в меню или на панель инструментов. Вызвав это действие контекстной справки (на рисунке ниже кнопка со стрелкой и значком вопроса), пользователь переходит в режим "What's This?". Если теперь нажать на виджет, отобразится соответствующий текст справки. Режим покидается при отображении справки или при нажатии клавиши Esc.
Вы можете программно войти в режим "What's This?" с помощью enterWhatsThisMode(), проверить режим с помощью inWhatsThisMode() и вернуться в обычный режим с помощью leaveWhatsThisMode().
Если вы хотите вручную управлять поведением "What's This?" виджета, см. Qt::WA_CustomWhatsThis.
Также возможно отображать различные тексты справки для различных областей виджета, используя QHelpEvent типа QEvent::WhatsThis. Перехватывайте событие справки в функции QWidget::event() вашего виджета и вызывайте QWhatsThis::showText() с текстом, который вы хотите отобразить для позиции, указанной в QHelpEvent::pos(). Если текст форматирован для богатого текста и пользователь нажимает на ссылку, виджет также получает QWhatsThisClickedEvent со ссылкой на ссылку как QWhatsThisClickedEvent::href(). Если QWhatsThisClickedEvent обрабатывается (т. е. QWidget::event() возвращает true), окно справки остается видимым. Вызовите QWhatsThis::hideText(), чтобы скрыть его явно.
См. такжеQToolTip.
Документация по функциям-членам
[static] QAction *QWhatsThis::createAction(QObject *parent = nullptr)
Возвращает готовый QAction, используемый для вызова контекстной справки "What's This?", с заданным parent.
Возвращаемый QAction предоставляет удобный способ для пользователей войти в режим "What's This?".
[static] void QWhatsThis::enterWhatsThisMode()
Эта функция переключает пользовательский интерфейс в режим "What's This?". Пользовательский интерфейс может быть переключен обратно в обычный режим пользователем (например, щелчком мыши или нажатием клавиши Esc), или программно вызовом leaveWhatsThisMode().
При входе в режим "What's This?" событие QEvent типа Qt::EnterWhatsThisMode отправляется во все виджеты верхнего уровня.
См. такжеinWhatsThisMode() и leaveWhatsThisMode().
[static] void QWhatsThis::hideText()
Если окно "What's This?" отображается, это уничтожает его.
См. такжеshowText().
[static] bool QWhatsThis::inWhatsThisMode()
Возвращает true , если пользовательский интерфейс находится в режиме "What's This?"; в противном случае возвращает false.
См. такжеenterWhatsThisMode().
[static] void QWhatsThis::leaveWhatsThisMode()
Если пользовательский интерфейс находится в режиме "What's This?", эта функция переключается обратно в обычный режим; в противном случае ничего не делает.
При выходе из режима "What's This?" событие QEvent типа Qt::LeaveWhatsThisMode отправляется во все виджеты верхнего уровня.
См. такжеenterWhatsThisMode() и inWhatsThisMode().
[static] void QWhatsThis::showText(const QPoint &pos, const QString &text, QWidget *w = nullptr)
Отображает text как окно "What's This?" в глобальной позиции pos. Дополнительный аргумент виджета, w, используется для определения соответствующего экрана на системах с несколькими мониторами.
См. такжеhideText().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qwhatsthis.html