Qt经过QToolTip显示浮动信息

QToolTip类的应用十分简单,其QToolTip类中全都是静态方法,若是要显示浮动信息的话使用该函数便可:ide

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

参看Qt例子,$(QTDIR)\examples\widgets\tooltips能够轻松写出显示浮动信息程序。经过在虚函数 bool event(QEvent *event) 中,验证 QEvent::ToolTip 事件便可实现。spa

而今天在作程序的时候使用的是在视图中显示浮动信息,因为视图带拖动条,当使用拖动条后,因为坐标信息错误而没法正常显示浮动信息,其实很好解决,写完之后没啥事干,特把这个加到博客上,实现代码以下,嘻嘻~.net

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());
orm

    // itemAt(const QPoint &point); 这里随便写的一个函数,经过坐标的获得视图中的项信息
    int index = itemAt(point);
    if (index != -1) {
       QString strToolTip;
       ...
       QToolTip::showText(helpEvent->globalPos(), strToolTip);
    }
    else
       QToolTip::hideText();
blog


    return QWidget::event(event);    
}
事件

最后来个程序贴图,展示一下成果:ip

Qt经过QToolTip显示浮动信息 - vic.MINg - vic.MINg的博客 

 

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

相关文章
相关标签/搜索