QWhatsThis 类

The QWhatsThis 类为任何小部件提供了一个简单的描述,即回答“这是什么?”的问题。 更多...

头文件 #include <QWhatsThis>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets

静态公有成员

QAction *createAction(QObject *parent = nullptr)
voidenterWhatsThisMode()
voidhideText()
boolinWhatsThisMode()
voidleaveWhatsThisMode()
voidshowText(const QPoint &pos, const QString &text, QWidget *w = nullptr)

详细描述

"这是什么?" 帮助是应用程序联机帮助系统的一部分,为用户提供有关特定小部件的功能和使用信息。"这是什么?" 帮助文本通常比 工具提示 长且更详细,但通常提供的信息少于单独的帮助窗口。

QWhatsThis 在用户询问“这是什么?”时弹出一个带有解释文本的单个窗口。用户询问问题的默认方式是将焦点移动到相关小部件并按 Shift+F1。帮助文本立即出现;用户做其他事情时就会消失。(注意,如果存在 Shift+F1 的快捷键,此机制将不起作用。)某些对话框提供了一个用户可以点击以进入“这是什么?”模式的“?”按钮;然后他们点击相关的小部件以弹出“这是什么?”窗口。还可以提供一个菜单选项或工具栏按钮来切换到“这是什么?”模式。

要将“这是什么?”文本添加到小部件或操作中,只需调用 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."));

进入“这是什么?”模式的另一种方法是调用 createAction(),并将返回的 QAction 添加到菜单或工具栏中。通过调用此上下文帮助操作(如图中带有箭头和问号图标的按钮),用户进入“这是什么?”模式。如果他们现在点击小部件,将显示相应的帮助文本。当给出帮助或用户按 Esc 时,退出模式。

您可以使用 enterWhatsThisMode() 函数以编程方式进入“这是什么?”模式,使用 inWhatsThisMode() 检查模式,以及使用 leaveWhatsThisMode() 返回正常模式。

如果您想手动控制小部件的“这是什么?”行为,请参阅 Qt::WA_CustomWhatsThis

还可以通过使用类型为 QEvent::WhatsThisQHelpEvent 为小部件的不同区域显示不同的帮助文本。在您的 widget 的 QWidget::event() 函数中拦截帮助事件,并以在 QHelpEvent::pos 中指定的位置显示的文本调用 QWhatsThis::showText()。如果文本是富文本并且用户点击了链接,widget 还会接收到带有链接引用作为 QWhatsThisClickedEvent::hrefQWhatsThisClickedEvent。如果处理了 QWhatsThisClickedEvent(即 QWidget::event() 返回 true),则帮助窗口保持可见。调用 QWhatsThis::hideText() 以显式地隐藏它。

另请参阅:QToolTip

成员函数文档

[静态] QAction *QWhatsThis::createAction(QObject *parent = nullptr)

该方法返回一个已准备好用于调用带给定 parent 的“这是什么?”上下文帮助的 QAction

返回的 QAction 提供了一种方便方式,让用户切换到“这是什么?”模式。

[静态] void QWhatsThis::enterWhatsThisMode()

此函数将用户界面切换到“这是什么?”模式。用户可以通过(例如,通过点击或按下 Esc)或通过调用 leaveWhatsThisMode() 以编程方式切换回正常模式。

当进入“这是什么?”模式时,向所有顶级 widget 发送类型为 Qt::EnterWhatsThisMode 的 QEvent

另请参阅:inWhatsThisMode() 和 leaveWhatsThisMode()。

[静态] void QWhatsThis::hideText()

如果显示了一个“这是什么?”窗口,则此函数将销毁它。

另请参阅:showText()。

[静态] bool QWhatsThis::inWhatsThisMode()

如果用户界面处于“这是什么?”模式,则返回 true;否则返回 false

另请参阅:enterWhatsThisMode()。

[静态] void QWhatsThis::leaveWhatsThisMode()

如果用户界面处于“这是什么?”模式,则此函数将切换回正常模式;否则不进行任何操作。

当退出“这是什么?”模式时,将向所有顶级 widget 发送类型为 Qt::LeaveWhatsThisMode 的 QEvent

另请参阅:enterWhatsThisMode() 和 inWhatsThisMode()。

[静态] void QWhatsThis::showText(const QPoint &pos, const QString &text, QWidget *w = nullptr)

在全局位置pos显示《这是什么?》窗口中的文本。可选的小部件参数w用于确定在多头系统上适当的屏幕。

另请参阅hideText().

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献均为各自版权所有者的版权。本提供的文档按GNU自由文档许可版本1.3的条款发布,该许可由自由软件基金会发布。Qt及相关标志是芬兰和/或全世界The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。