您的位置:首页 > 编程语言 > Qt开发

Qt通过QToolTip显示浮动信息

2016-08-09 20:14 253 查看
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);    

}

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



 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: