簡體   English   中英

如何查詢和更改QToolTip顯示所需的時間?

[英]How to query and change the time it takes for a QToolTip to appear?

是否可以更改鼠標仍在窗口中的時間延遲和工具提示的show事件?

有沒有像TTM_SETDELAYTIME這樣的Qt包裝器? 根據Windows文檔,默認值取決於雙擊間隔。

您必須設置一個覆蓋styleHint()的自定義QProxyStyle ,並返回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);
    }
}

顯然,使用內置的Qt工具提示是不可能的。 在4.8 qapplication.cpp他們使用幻數:

d->toolTipWakeUp.start(d->toolTipFallAsleep.isActive()?20:700, this);

因此,默認行為是在700 ms后顯示工具提示,並啟動一個2000 ms的睡眠計時器。 如果我們將鼠標懸停在另一個窗口(窗口小部件)上並且睡眠計時器仍處於活動狀態,則延遲將減少到20毫秒,可能假設第一個工具提示不是用戶想要的那個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM