博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt Tooltip详解
阅读量:7205 次
发布时间:2019-06-29

本文共 1162 字,大约阅读时间需要 3 分钟。

hot3.png

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。

看如下代码示例:

bool SortingBox::event(QEvent *event) {     if (event->type() == QEvent::ToolTip) {         QHelpEvent *helpEvent = static_cast
(event); int index = itemAt(helpEvent->pos()); if (index != -1) { QToolTip::showText(helpEvent->globalPos(), shapeItems[index].toolTip()); } else { QToolTip::hideText(); event->ignore(); } return true; } return QWidget::event(event); }
可以看到,是调用 QtoolTip::showText()在某个位置显示tooltip文本。
那么,如果想随时显示tooltip,该怎么做呢?其实十分简单:直接调用QToolTip::showText(),指定要显示的位置就行了。因为tooltip类的函数跟本就相当于全局函数而已。
呵呵,其实很简单,但从win32转过来的人,觉得真别扭。

转载于:https://my.oschina.net/u/555701/blog/99222

你可能感兴趣的文章
杭电2524--矩形A + B
查看>>
bug 调试
查看>>
时间SQL查询大全
查看>>
Calendar.get()方法--- WEEK_OF_YEAR 、MONTH、
查看>>
PAT_A1134#Vertex Cover
查看>>
echo追加和覆盖
查看>>
python教程(三)·函数进阶(下)
查看>>
CentOS 7 安装 GlusterFS
查看>>
2017,我的第一次年终总结
查看>>
HDOJ1003(DP)
查看>>
SpringBoot三种启动方式
查看>>
sum,filter和map参数里面的玄机
查看>>
Mac下Fiddler的安装启动。
查看>>
消息中间件 MQ
查看>>
【python】python抓取activemq管理界面
查看>>
python django 之 django自带的分页
查看>>
获取URL的参数
查看>>
PHP学习笔记----IIS7下安装配置php环境
查看>>
Spring系列之Alias标签的解析与使用
查看>>
SQA计划和系统测试规程
查看>>