Qt之字典划词

简介: 简述相信大家都用过词典吧!因为英语不太好。。。O(∩_∩)O~,所以经常进行划词翻译!简述实现效果源码更多参考实现原理:鼠标移至某单词之上,获取鼠标位置,然后在对应位置进行取词,翻译!基于此原理,下面我们实现为每一个单词显示QToolTip。效果源码创建QTextEdit队形,然后通过installEventF

简述

相信大家都用过词典吧!因为英语不太好。。。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);
}

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

更多参考

目录
相关文章
|
7月前
|
存储 索引 Python
python字典嵌套
python字典嵌套
75 1
|
7月前
|
Python
在Python中修改字典中某个键对应的值
在Python中修改字典中某个键对应的值
187 2
|
7月前
|
存储 Python
python字典中删除键值的方法
python字典中删除键值的方法
173 0
|
5月前
|
存储 Python
python将字典的键或值解包到变量中
【7月更文挑战第5天】
54 4
|
7月前
|
存储 Python
|
Python
python之与字典有关的函数的使用,字典的遍历
python之与字典有关的函数的使用,字典的遍历
|
存储 Python
Python读取Excel并将数据转为字典dict变量
本文介绍基于Python语言,将一个Excel表格文件中的数据导入到Python中,并将其通过字典格式来存储的方法~
532 1
Python读取Excel并将数据转为字典dict变量
|
存储 索引 Python
12.从入门到精通:Python字典,创建字典,访问字典的值,修改字典,删除字典,字典键的特性,字典内置函数和方法
12.从入门到精通:Python字典,创建字典,访问字典的值,修改字典,删除字典,字典键的特性,字典内置函数和方法
|
C# Python
Python合并两个字典成一个新字典的几种方法比较
Python合并两个字典成一个新字典的几种方法比较
162 0
|
Python
python中字典中的删除,pop方法与popitem方法
python中字典中的删除,pop方法与popitem方法
308 0