QToolTip显示提示 设置提示的位置

转载 2015年07月10日 17:50:41
Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。

一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。
二是从widget获取的tooltip不是tooltip对象,而是tooltip中的文本。
三是tooltip跟本不是一个widget。所以不把它当作widget用。
四是tooltip类是一个静态类,所以跟本不必生成tooltip对象就可以使用。
五是tooltip类不能被定制,所以不能从它产生各种形状的tooltip窗口。

QtoolTip有两种使用方式:
一是静态tooltip。比如为一个widget设置一个不变的tooltip文本,当鼠标移上去时显示tooltip。此时很简单,只需调用widget的setToolTip()设置文本即可。
二是动态tooltip。也就是一个widget上的tooltip是变化的。此时需要重写QWidget::event()函数,在里面判断事件类型,如果是QEvent::ToolTip,则控制显示的文本的内容,即可实现动态tooltip。

看如下代码示例:

  1. bool SortingBox::event(QEvent *event)  
  2.  {  
  3.      if (event->type() == QEvent::ToolTip) {  
  4.          QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);  
  5.          int index = itemAt(helpEvent->pos());  
  6.          if (index != -1) {  
  7.              QToolTip::showText(helpEvent->globalPos(), shapeItems[index].toolTip());  
  8.          } else {  
  9.              QToolTip::hideText();  
  10.              event->ignore();  
  11.          }  
  12.   
  13.          return true;  
  14.      }  
  15.      return QWidget::event(event);  
  16.  }  
可以看到,是调用 QtoolTip::showText()在某个位置显示tooltip文本。

那么,如果想随时显示tooltip,该怎么做呢?其实十分简单:直接调用QToolTip::showText(),指定要显示的位置就行了。因为tooltip类的函数跟本就相当于全局函数而已。

呵呵,其实很简单,但从win32转过来的人,觉得真别扭。

Qt QToolTip详解

Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。 一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。 二是从widget获取的too...
  • zgrjkflmkyc
  • zgrjkflmkyc
  • 2014年11月22日 14:39
  • 5331

Qt 的 QToolTip使用一例

这个程序的作用是,当鼠标悬停在窗口的右下1/4时,光标处浮出一个tooltip,内容是用户第几次双击窗口。 #ifndef MAINWINDOW_H #define MAINWINDOW_H #i...
  • liji_digital
  • liji_digital
  • 2016年10月30日 13:01
  • 1076

Qt5自定义实例化的QToolTip

  • 2015年01月29日 10:52
  • 38KB
  • 下载

qtooltip源码学习

最近由于工作需要,分析了qt源码中qt
  • u010983402
  • u010983402
  • 2016年01月14日 15:10
  • 291

Qt通过QToolTip显示浮动信息

QToolTip类的应用十分简单,其QToolTip类中全都是静态方法,如果要显示浮动信息的话使用该函数即可: void QToolTip::showText ( const QPoint ...
  • king16304
  • king16304
  • 2016年08月09日 20:14
  • 526

Qt QToolTip详解

Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。 一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。 二是从widget获取的too...
  • king16304
  • king16304
  • 2016年08月09日 20:12
  • 317

QToolTip换行

QToolTip为所有widget提供 鼠标hover提示功能,直接通过setToolTip设置。如何实现换行呢。 1:QToolTip支持rich text,是有意设置文本时中间加就可以实现换行。...
  • wwwwxhh
  • wwwwxhh
  • 2016年07月27日 12:01
  • 610

Qt Tooltip详解

http://blog.csdn.net/niu_gao/article/details/8204425 Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下...
  • zb872676223
  • zb872676223
  • 2014年04月21日 09:11
  • 4368

Qt Tooltip详解

Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。二是从widget获取的tooltip不是...
  • nkmnkm
  • nkmnkm
  • 2012年11月20日 16:36
  • 15391

Qt之QSS(白色靓丽)

简述Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples。之前博客中分享了很多关于Qt的样式效果,几乎都是基下面这个样式 - 白色靓丽,一款...
  • u011012932
  • u011012932
  • 2016年07月22日 10:09
  • 19037
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QToolTip显示提示 设置提示的位置
举报原因:
原因补充:

(最多只允许输入30个字)