简述

相信大家都用过词典吧!因为英语不太好。。。O(∩_∩)O~,所以经常进行划词翻译!

实现

原理:鼠标移至某单词之上,获取鼠标位置,然后在对应位置进行取词,翻译!

基于此原理,下面我们实现为每一个单词显示QToolTip。

效果

源码

创建QTextEdit队形,然后通过installEventFilter进行事件监听。

m_pTextEdit = new QTextEdit(this);
m_pTextEdit->setObjectName("highlightLabel");
m_pTextEdit->append(QString::fromLocal8Bit("一去丶二三里"));
m_pTextEdit->append(QString::fromLocal8Bit("青春不老,奋斗不止!"));
m_pTextEdit->append(QString::fromLocal8Bit("You are not alone."));
m_pTextEdit->append(QString::fromLocal8Bit("进步始于交流,收获源于分享。")); // 安装事件过滤器
m_pTextEdit->installEventFilter(this);

实现eventFilter,判断事件类型为QEvent::ToolTip时,获取光标,进行取词。

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (obj == m_pTextEdit)
{
// 事件为提示
if (event->type() == QEvent::ToolTip)
{
QHelpEvent *pHelpEvent = static_cast<QHelpEvent *>(event); // 获取光标
QTextCursor cursor = m_pTextEdit->cursorForPosition(pHelpEvent->pos());
cursor.select(QTextCursor::WordUnderCursor); // 显示提示信息
QToolTip::showText(pHelpEvent->globalPos(), cursor.selectedText()); return true;
}
}
return QDialog::eventFilter(obj, event);
}

如果对事件过滤不熟悉,可查看更多参考。

更多参考

最新文章

  1. Scala化规则引擎
  2. 扼杀 304,Cache-Control: immutable
  3. 【循序渐进学Python】15.网络编程
  4. C#.NET如何不序列化字段、属性
  5. Unity3D着色器Shader编程入门(一)
  6. Submine Text 3 代码自动换行
  7. LINUX系统怎么关闭防火墙?
  8. editActionsForRowAtIndexPath(iOS8) tableview编辑(删除、插入、移动)
  9. BCS--设置BDC元数据存储权限--访问被业务数据拒绝
  10. window.name 跨域
  11. 金蝶KIS专业版替换SXS.dll 遭后门清空数据被修改为【恢复数据联系QQ 735330197,2251434429】解决方法 修复工具。
  12. python中的判断语句与循环语句
  13. 5.分析内核中断运行过程,以及中断3大结构体:irq_desc、irq_chip、irqaction
  14. Vue.js与Jquery的比较 谁与争锋 js风暴
  15. hive 一次更新多个分区的数据
  16. ajax方式提交表单数据并判断当前注册用户是否存在
  17. c# 转换成时间类型
  18. 卓越的目标检测器Pelee
  19. Node.js实战(十一)之Buffer
  20. 【转】HttpApplication的认识与加深理解

热门文章

  1. BZOJ 4016 [FJOI2014]最短路径树问题 (贪心+点分治)
  2. 引入拦截器及swagger支持及解决redis无法初始化问题
  3. STM32使用HAL库实现ADC单通道转换
  4. 前端实现input[type=&#39;file&#39;]上传图片预览效果
  5. spring boot和maven的约定大于配置体现在哪些方面
  6. ORACLE-014:oracle中查看DBLinkpassword
  7. 开心的小明(南阳oj49)(01背包)
  8. adt-bundle-windows加入NDK支持
  9. C++ Primer Plus的若干收获--(三)
  10. Android开发之AudioManager(音频管理器)具体解释