是否可以更改鼠标在窗口中的时间延迟以及工具提示的show事件?
是否有类似TTM_SETDELAYTIME
之类的Qt包装器?根据Windows文档,默认值取决于双击间隔。
答案 0 :(得分:4)
您必须设置一个覆盖QProxyStyle
的自定义styleHint()
,并返回QStyle::SH_ToolTip_WakeUpDelay
的首选值。示例代码如下。
class CustomStyle : public QProxyStyle
{
Q_OBJECT
public:
...
int styleHint(StyleHint hint, const QStyleOption *option = Q_NULLPTR, const QWidget *widget = Q_NULLPTR, QStyleHintReturn *returnData = Q_NULLPTR) const Q_DECL_OVERRIDE {
if (hint == SH_ToolTip_WakeUpDelay)
return someCustomValue;
else
return baseStyle()->styleHint(hint, option, widget, returnData);
}
}
答案 1 :(得分:1)
显然,使用内置的Qt工具提示是不可能的。在4.8 qapplication.cpp
中,他们使用幻数:
d->toolTipWakeUp.start(d->toolTipFallAsleep.isActive()?20:700, this);
因此,默认行为是在700 ms后显示工具提示,并启动一个2000 ms的睡眠计时器。如果我们将鼠标悬停在另一个窗口(小部件)上,并且睡眠计时器仍处于活动状态,则延迟将减少到20毫秒,可能假设第一个工具提示不是用户想要的那个。