Qt,如何使工具提示在不悬停在控件上的情况下可见?
当容器小部件获得焦点/可见时,我希望工具提示在默认情况下可见Qt,如何使工具提示在不悬停在控件上的情况下可见?,qt,focus,hover,tooltip,visible,Qt,Focus,Hover,Tooltip,Visible,当容器小部件获得焦点/可见时,我希望工具提示在默认情况下可见 我希望工具提示不会出现在相应控件上的鼠标悬停状态。您需要对小部件进行子类化,并覆盖事件的处理程序,该事件应生成工具提示显示。在处理程序中,创建类型为QEvent::ToolTip的QHelpEvent,并在事件循环中将其排队。最后调用父级的原始处理程序,让它执行最初打算执行的操作 所以,特别是为了关注按钮,它将是 class MyButton : public QPushButton { virtual void focusInE
我希望工具提示不会出现在相应控件上的鼠标悬停状态。您需要对小部件进行子类化,并覆盖事件的处理程序,该事件应生成工具提示显示。在处理程序中,创建类型为
QEvent::ToolTip
的QHelpEvent
,并在事件循环中将其排队。最后调用父级的原始处理程序,让它执行最初打算执行的操作
所以,特别是为了关注按钮,它将是
class MyButton : public QPushButton {
virtual void focusInEvent(QFocusEvent *) {
if(evt->gotFocus()) {
QPoint pos(0,0);
QHelpEvent* help = new QHelpEvent(
QEvent::ToolTip,pos,this->mapToGlobal(pos));
QCoreApplication::postEvent(this,help);
}
QPushButton::focusInEvent(evt);
}
}
对于可见性,您将覆盖
void QWidget::showEvent(QShowEvent * event);
并执行类似的代码。您需要根据自己的喜好调整相对pos
,因为最初的工具提示依赖于鼠标位置,而这里没有。同时,要严格控制小部件的焦点和/或可视性。默认情况下,某些内容始终处于焦点位置,因此您将在整个位置获得工具提示