如何用Qt实现输入框中长尾词的自动检测与提示功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计736个文字,预计阅读时间需要3分钟。
目录+前言+解决思路+方法一:按键事件+方法二:光标位置变化+前言+最近在用Qt做通讯类客户端软件,其中有一项功能类似与微信和QQ聊天时的@全体成员和@指定联系人。
目录
- 前言
- 解决思路
- 方法一:按键事件
- 方法二:光标位置变化信号
前言
最近在用qt做通讯类的客户端软件,其中有一项功能类似与微信和QQ聊天时的@全体人员和@指定联系人。下面就来探究一下如何实现这项功能。
解决思路
这项功能主要使用QTextEdit来进行输入,当输入@符号时,弹出联系人来进行选择指定的艾特联系人。
- 当我们输入@时,会先按下Shift按键不松,再按下字母键上方的数字键的2,也就是@键。因此,我们首先考虑使用按键事件来检测是否按下了这两个按键,当按下这两个按键时,跳转至事件处理函数来进行后续处理。
- 另一种方法是利用QTextEdit的cursorPositionChanged()光标位置变化信号来进行检测字符输入,再使用QTextCursor和QTextBlock来检测输入字符是否为“@”再进行后续处理。
方法一:按键事件
首先使用方法一来尝试实现。
本文共计736个文字,预计阅读时间需要3分钟。
目录+前言+解决思路+方法一:按键事件+方法二:光标位置变化+前言+最近在用Qt做通讯类客户端软件,其中有一项功能类似与微信和QQ聊天时的@全体成员和@指定联系人。
目录
- 前言
- 解决思路
- 方法一:按键事件
- 方法二:光标位置变化信号
前言
最近在用qt做通讯类的客户端软件,其中有一项功能类似与微信和QQ聊天时的@全体人员和@指定联系人。下面就来探究一下如何实现这项功能。
解决思路
这项功能主要使用QTextEdit来进行输入,当输入@符号时,弹出联系人来进行选择指定的艾特联系人。
- 当我们输入@时,会先按下Shift按键不松,再按下字母键上方的数字键的2,也就是@键。因此,我们首先考虑使用按键事件来检测是否按下了这两个按键,当按下这两个按键时,跳转至事件处理函数来进行后续处理。
- 另一种方法是利用QTextEdit的cursorPositionChanged()光标位置变化信号来进行检测字符输入,再使用QTextCursor和QTextBlock来检测输入字符是否为“@”再进行后续处理。
方法一:按键事件
首先使用方法一来尝试实现。

