Sur cette page

QToolTip Class

La classe QToolTip fournit des info-bulles (aide en forme de bulles) pour n'importe quel widget. Plus d'informations...

En-tête : #include <QToolTip>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets

Membres publics statiques

QFont font()
void hideText()
bool isVisible()
QPalette palette()
void setFont(const QFont &font)
void setPalette(const QPalette &palette)
void showText(const QPoint &pos, const QString &text, QWidget *w = nullptr, const QRect &rect = {}, int msecDisplayTime = -1)
QString text()

Description détaillée

L'astuce est un court texte rappelant à l'utilisateur la fonction du widget. Elle est dessinée immédiatement sous la position donnée dans une combinaison de couleurs noire et jaune distinctive. L'info-bulle peut être une chaîne de caractères au format rich text.

Le texte riche affiché dans une info-bulle est implicitement entouré de mots, sauf indication contraire à l'adresse <p style='white-space:pre'>.

Les éléments d'interface utilisateur créés via QAction utilisent la propriété tooltip de QAction, de sorte que pour la plupart des éléments d'interface utilisateur interactifs, la définition de cette propriété est le moyen le plus simple de fournir des info-bulles.

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);

Pour tous les autres widgets, la manière la plus simple et la plus courante de définir l'info-bulle d'un widget est d'appeler sa fonction QWidget::setToolTip().

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

Il est également possible d'afficher différentes infobulles pour différentes régions d'un widget, en utilisant un QHelpEvent de type QEvent::ToolTip. Interceptez l'événement d'aide dans la fonction event() de votre widget et appelez QToolTip::showText() avec le texte que vous souhaitez afficher.

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

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

Si vous appelez QToolTip::hideText() ou QToolTip::showText() avec une chaîne vide, à la suite d'un événement ToolTip, vous devez également appeler ignore() sur l'événement, pour signaler que vous ne voulez pas lancer de modes spécifiques aux infobulles.

Si vous souhaitez afficher des infobulles dans une vue d'élément, l'architecture modèle/vue fournit une fonctionnalité permettant de définir l'infobulle d'un élément ; par exemple, la fonction QTableWidgetItem::setToolTip(). Toutefois, si vous souhaitez fournir des info-bulles personnalisées dans une vue d'élément, vous devez intercepter l'événement help dans la fonction QAbstractItemView::viewportEvent() et le gérer vous-même.

La couleur et la police par défaut de l'info-bulle peuvent être personnalisées à l'aide des fonctions setPalette() et setFont(). Lorsqu'une info-bulle est affichée, isVisible() renvoie true et text() le texte actuellement visible.

Remarque : les bulles d'aide utilisent le groupe de couleurs inactif de QPalette, car les bulles d'aide ne sont pas des fenêtres actives.

Voir également QWidget::toolTip et QAction::toolTip.

Documentation des fonctions membres

[static] QFont QToolTip::font()

Renvoie la police utilisée pour afficher les infobulles.

Voir aussi setFont().

[static] void QToolTip::hideText()

Masque l'info-bulle. Cela revient à appeler showText() avec une chaîne vide.

Voir aussi showText().

[static] bool QToolTip::isVisible()

Renvoie true si une infobulle est actuellement affichée.

Voir aussi showText().

[static] QPalette QToolTip::palette()

Renvoie la palette utilisée pour afficher les bulles d'aide.

Note : Les infobulles utilisent le groupe de couleurs inactif de QPalette, car les infobulles ne sont pas des fenêtres actives.

Voir également setPalette().

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

Définit le site font utilisé pour afficher les infobulles.

Voir aussi font().

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

Définit le site palette utilisé pour afficher les bulles d'aide.

Remarque : les infobulles utilisent le groupe de couleurs inactif de QPalette, car les infobulles ne sont pas des fenêtres actives.

Voir également palette().

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

Affiche text comme info-bulle, avec la position globale pos comme point d'intérêt. L'info-bulle sera affichée avec un décalage spécifique à la plate-forme par rapport à ce point d'intérêt.

Si vous spécifiez un rectangle non vide, l'info-bulle sera cachée dès que vous déplacerez votre curseur hors de cette zone.

L'argument rect est dans les coordonnées du widget que vous avez spécifié avec w. Si rect n'est pas vide, vous devez spécifier un widget. Sinon, cet argument peut être nullptr mais il est utilisé pour déterminer l'écran approprié sur les systèmes à têtes multiples.

Le paramètre msecDisplayTime indique la durée d'affichage de l'info-bulle, en millisecondes. Avec la valeur par défaut de -1, la durée est basée sur la longueur du texte.

Si text est vide, l'info-bulle est cachée. Si le texte est identique à celui de l'info-bulle actuellement affichée, l'info-bulle ne bougera pas. Vous pouvez forcer le déplacement en cachant d'abord l'info-bulle avec un texte vide, puis en affichant la nouvelle info-bulle à la nouvelle position.

[static] QString QToolTip::text()

Renvoie le texte de l'infobulle, si l'infobulle est visible, ou une chaîne vide si l'infobulle n'est pas visible.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.