Tim Mayert
Tim Mayert

Reputation: 21

How to override all widgit tooltips to have them displayed in a single QTextBrowser widget?

I am new to Qt and therefore do not know all the in's and out's and would therefore like to know how, when you hover your mouse over a checkbox or other field that contains a tooltip, to get that tooltip text and have it applied/displayed in a QTextBrowser widget??

Thanks for any help on this issue.

Upvotes: 0

Views: 516

Answers (2)

ilotXXI
ilotXXI

Reputation: 1085

If you try to dynamically display tooltip of the widget under cursor, try to track mouse movement.

class MyWidget: public  SuperclassWidget
{...};

void MyWidget::mouseMoveEvent(QMouseEvent *event)
{
    const QWidget *widget = childAt(event->pos());
    if (widget != NULL)
        _textBrowser->setHtml(widget->toolTip());

    SuperclassWidget::mouseMoveEvent(event);
}

There may be more clever things to prevent too frequent setting of the same tooltip, e.g. remembering the last widget.

Upvotes: 0

Seleznev Anton
Seleznev Anton

Reputation: 661

Each QWidget has a "toolTip" property. To get it you can simply call:

QString toolTip = desiredWidget->toolTip();

Also, as you see, to get a toolTip as a string you don't have to wait until your mouse will hover over the desired widget. After that you can use this toolTip as you want (e.g. display it in QTextBrowser as you wrote in your question).

Upvotes: 1

Related Questions