QToolTip 类

QToolTip 类提供任何小部件的工具提示(气球帮助)。更多...

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

静态公共成员

QFontfont()
voidhideText()
boolisVisible()
QPalettepalette()
voidsetFont(const QFont &font)
voidsetPalette(const QPalette &palette)
voidshowText(const QPoint &pos, const QString &text, QWidget *w = nullptr, const QRect &rect = {}, int msecDisplayTime = -1)
QStringtext()

详细说明

提示是一个简短的文本,提醒用户小部件的功能。它以独特的黑白颜色组合在上一个位置下方绘制。提示可以是任何格式化的富文本字符串。

工具提示中显示的富文本在默认情况下自动换行,除非使用 <p style='white-space:pre'> 进行不同指定。

通过 QAction 创建的 UI 元素使用 QAction 的提示属性,因此对于大多数交互式 UI 元素,设置该属性是提供工具提示的最简单方式。

    QAction *openAction = new QAction(tr("&Open..."));
    openAction->setToolTip(tr("Open an existing file"));

    fileMenu = menuBar()->addMenu(tr("&File"));
    fileToolBar = addToolBar(tr("&File"));

    fileMenu->addAction(openAction);
    fileToolBar->addAction(openAction);

对于任何其他小部件,设置小部件的工具提示最简单、最常见的方法是调用其 QWidget::setToolTip() 函数。

    searchBar = new SearchBar;
    searchBar->setToolTip(tr("Search in the current document"));

也可以通过使用类型为 QEvent::ToolTipQHelpEvent 为小部件的不同区域显示不同的工具提示。拦截小部件的 event() 函数中的帮助事件,并用您想要显示的文本调用 QToolTip::showText()。

bool Window::event(QEvent *event)
{
    if (event->type() == QEvent::ToolTip) {
        QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
        if (Element *element = elementAt(helpEvent->pos())) {
            QToolTip::showText(helpEvent->globalPos(), element->toolTip());
        } else {
            QToolTip::hideText();
            event->ignore();
        }

        return true;
    }
    return QWidget::event(event);
}

如果由于 ToolTip-事件而调用 QToolTip::hideText() 或带空字符串的 QToolTip::showText(),则应在事件上调用 ignore(),以表示您不想启动任何特定的工具提示模式。

请注意,如果您想在项目视图中显示工具提示,模型/视图架构提供了设置项目工具提示的功能;例如,QTableWidgetItem::setToolTip() 函数。但是,如果您想在项目视图中提供自定义工具提示,您必须在 QAbstractItemView::viewportEvent() 函数中拦截帮助事件并自己处理。

默认工具提示颜色和字体可以使用 setPalette() 和 setFont() 进行自定义。当工具提示正在显示时,isVisible() 返回 truetext() 返回当前可见的文本。

注意:工具提示使用 QPalette 的非活动颜色组,因为工具提示不是活动窗口。

另请参阅:QWidget::toolTipQAction::toolTip

成员函数文档

[静态] QFont QToolTip::font()

返回用于渲染工具提示的字体。

另请参阅:setFont

[静态] void QToolTip::hideText()

隐藏工具提示。这等同于调用 showText() 并传入一个空字符串。

另请参阅:showText

[静态] bool QToolTip::isVisible()

如果当前显示工具提示,则返回 true

另请参阅:showText

[静态] QPalette QToolTip::palette()

返回用于渲染工具提示的调色板。

注意:工具提示使用 QPalette 的非活动颜色组,因为工具提示不是活动窗口。

另请参阅:setPalette

[静态] void QToolTip::setFont(const QFont &font)

设置用于渲染工具提示的 字体

另请参阅:font

[静态] void QToolTip::setPalette(const QPalette &palette)

设置用于渲染工具提示的 调色板

注意:工具提示使用 QPalette 的非活动颜色组,因为工具提示不是活动窗口。

另请参阅:palette

[静态] void QToolTip::showText(const QPoint &pos, const QString &text, QWidget *w = nullptr, const QRect &rect = {}, int msecDisplayTime = -1)

文本 显示为工具提示,将全局位置 pos 作为焦点点。工具提示将以从该焦点点出发的平台特定偏移显示。

如果您指定一个非空矩形,则当您将光标移出该区域时,提示将隐藏。

矩形 位于您用 w 指定的窗口坐标中。如果 矩形 不为空,则必须指定一个窗口。否则,此参数可以是 nullptr,但在多显示器系统上用于确定适当的屏幕。

msecDisplayTime参数指定工具提示显示的时间长度(以毫秒为单位)。默认值为-1时,时间基于文本长度。

如果text为空,则工具提示将隐藏。如果文本与当前显示的工具提示相同,则工具提示将不会移动。您可以通过首先使用空文本隐藏工具提示,然后在新位置显示新的工具提示来强制移动。

[静态] QString QToolTip::text()

返回工具提示文本,如果有可视工具提示则返回,如果没有则返回空字符串。

© 2024 Qt公司。本文件中包含的文档贡献享有各自所有者的版权。提供给本文件的文档按照GNU自由文档许可协议版本1.3的条款提供,该协议由自由软件基金会发布。Qt及其相关商标是芬兰的Qt公司及其在世界其他国家/地区受保护的商标。所有其他商标均为各自所有者的财产。