Qt5 控件ToolTip失效的解决方法

湛博易
2023-12-01

环境:Qt5.9.6 + VS2015

本文以QToolButton为例。

 

1. 头文件里声明事件过滤函数:

bool eventFilter(QObject *watched, QEvent *event);

2. 构造函数中给控件安装事件过滤器:

_addNewTabBtn.installEventFilter(this);

3. 实现eventFilter函数:

bool Widget::eventFilter(QObject *watched, QEvent *event)
{
	if (dynamic_cast<QToolButton*>(watched) == &_addNewTabBtn && event->type() == QEvent::Enter)
		QToolTip::showText(dynamic_cast<QEnterEvent*>(event)->globalPos(), toolTip(), this);

	return QWidget::eventFilter(watched, event);
}

 

 

 类似资料: