Qt通過QToolTip顯示浮動信息


QToolTip類的應用十分簡單,其QToolTip類中全都是靜態方法,如果要顯示浮動信息的話使用該函數即可:

void QToolTip::showText ( const QPoint & pos, const QString & text, QWidget * w = 0 );    [static]

參看Qt例子,$(QTDIR)\examples\widgets\tooltips可以輕松寫出顯示浮動信息程序。通過在虛函數 bool event(QEvent *event) 中,驗證 QEvent::ToolTip 事件即可實現。

而今天在做程序的時候使用的是在視圖中顯示浮動信息,由於視圖帶拖動條,當使用拖動條后,由於坐標信息錯誤而無法正常顯示浮動信息,其實很好解決,寫完以后沒啥事干,特把這個加到博客上,實現代碼如下,嘻嘻~

bool QXXXView::event(QEvent *event)
{
    if (event->type() == QEvent::ToolTip) {
    QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
  
    QPoint p = helpEvent->pos();
    // 獲取水平拖動條
    QScrollBar* pHorizontalScrollBar = horizontalScrollBar ();
    // 獲取垂直拖動條
    QScrollBar* pVerticalScrollBar = verticalScrollBar ();
    // 拖過滾動條得到視圖中鼠標點坐標
    QPoint point(pHorizontalScrollBar->value() + p.x(), pVerticalScrollBar->value() + p.y());

    // itemAt(const QPoint &point); 這里隨便寫的一個函數,通過坐標的得到視圖中的項信息
    int index = itemAt(point);
    if (index != -1) {
       QString strToolTip;
       ...
       QToolTip::showText(helpEvent->globalPos(), strToolTip);
    }
    else
       QToolTip::hideText();


    return QWidget::event(event);    
}

最后來個程序貼圖,展現一下成果:

Qt通過QToolTip顯示浮動信息 - vic.MINg - vic.MINg的博客 

 

http://cool.worm.blog.163.com/blog/static/6433900620095156026302/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM