Qt Tooltip详解
来源:互联网 发布:java定义json字符串 编辑:程序博客网 时间:2024/05/28 15:06
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。
一是不能直在堆或栈中生成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<QHelpEvent *>(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转过来的人,觉得真别扭。
- Qt Tooltip详解
- Qt Tooltip 详解
- Qt Tooltip详解
- Qt Tooltip详解
- Qt Tooltip详解
- QT,QAction中的ToolTip
- Qt Quick ToolTip
- WTL使用tooltip详解
- ToolTip
- tooltip
- Tooltip
- tooltip
- tooltip
- Qt QAbstractItemView为截断的项显示ToolTip
- QT详解
- Qt之Qt::WA_DeleteOnClose详解
- [QT] QThread 类详解
- Qt/Embedded移植详解
- Android 设置页面的设计
- js try..catch 的复习
- 自动锁
- worldwind C#版
- Dynamic Watch Log4net Configure fix Watching Failed Problem
- Qt Tooltip详解
- CentOs添加yum源的地址
- 实现gwt rpc tomcat 下debug 和develop module debug,让jettry and tomcat 识别servlet
- socket阻塞和非阻塞的区别
- smarty 总结
- Linux 命令 ctags使用详解
- Sql查询字符串的位置
- IOS可以拖动的UIButton
- android 自定义ScrollView实现反弹效果(以及解决和ListView之间的冲突)