2012-09-11 24 views

回答

1

您需要爲窗口小部件創建子類並覆蓋應該產生工具提示顯示的事件的處理程序。在處理程序中,創建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,因爲最初的工具提示依賴於您在此處沒有的鼠標位置。同時保持非常嚴格的控制,使你的小工具集中和/或可見。默認情況下,一直都有焦點,所以你會得到各地的工具提示。

相關問題