zoukankan      html  css  js  c++  java
  • Qt通过QToolTip显示浮动信息

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

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

    参看Qt例子,$(QTDIR)exampleswidgets ooltips可以轻松写出显示浮动信息程序。通过在虚函数 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/

  • 相关阅读:
    站立会议(二)
    站立会议(一)
    电梯演讲 作业派
    《你的灯亮着么》三四篇
    《你的灯亮着么》一二篇
    找一
    水王2
    搜狗输入法使用评价
    找水王问题
    典型用户及用户场景分析
  • 原文地址:https://www.cnblogs.com/findumars/p/6250768.html
Copyright © 2011-2022 走看看