• 7291阅读
  • 5回复

[提问]我要在QTextEdit中,插入一个单词,点击这个单词,触发一个函数。怎么实现。 [复制链接]

上一主题 下一主题
离线qdxianxing
 
只看楼主 正序阅读 楼主  发表于: 2012-05-04
简单举个例子:希望效果是这样的:

我要在QTextEdit中,插入3个单词:word1 word2 word3;

然后,当鼠标移动到单词word2上的时候,word2单词显示下划线,并且鼠标形状变成手形。

接着,点击这个单词word2,可以触发某个函数。

鼠标离开单词word2后,单词下划线消失,并且鼠标形状变回来。

离线uidab

只看该作者 5楼 发表于: 2012-05-04
Re:Re:回 楼主(qdxianxing) 的帖子
引用第2楼qdxianxing于2012-05-04 10:53发表的 Re:回 楼主(qdxianxing) 的帖子 :
不懂。
你是说,下划线的出现,消失,用mouseMoveEvent?
.......


鼠标移过去后就出现类似右键菜单的东西,但是你可以不要菜单,而是自己定义按钮。获取该文字后,在传给下一步要处理的函数,然后再show出一个简单的页面,显示处理结果。

可能说得简单,要写代码构思就麻烦了!!
这里高手多,别急!
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线qdxianxing
只看该作者 4楼 发表于: 2012-05-04
引用第3楼weinkym于2012-05-04 10:55发表的  :
是否可以利用信号cursorPositionChanged (),根据当前的cursorPosition来获取当前光标选择的单词是哪个来判断是否执行函数

不太可行。单词内容是会变化的。这次是word2,可能下次是word9。

而且单词也非常多,肯定是不止3个的。每次判断下来,消耗资源太大。效率会很低。
离线weinkym

只看该作者 3楼 发表于: 2012-05-04
是否可以利用信号cursorPositionChanged (),根据当前的cursorPosition来获取当前光标选择的单词是哪个来判断是否执行函数
离线qdxianxing
只看该作者 2楼 发表于: 2012-05-04
Re:回 楼主(qdxianxing) 的帖子
引用第1楼uidab于2012-05-04 10:41发表的 回 楼主(qdxianxing) 的帖子 :
还是建议用mouseMoveEvent ( QMouseEvent * event )

不懂。

你是说,下划线的出现,消失,用mouseMoveEvent?

那么,如何触发一个函数呢?word2没有click事件也没有click信号。 我又不能插一个按纽进去QTextEdit。
离线uidab

只看该作者 1楼 发表于: 2012-05-04
回 楼主(qdxianxing) 的帖子
还是建议用mouseMoveEvent ( QMouseEvent * event )
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
快速回复
限100 字节
 
上一个 下一个