• 11196阅读
  • 5回复

如何让鼠标一放进QlineEdit就发送一个信号?? [复制链接]

上一主题 下一主题
离线xyxo2008
 
只看楼主 正序阅读 楼主  发表于: 2008-11-11
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
如何让鼠标一放进QlineEdit就发送一个信号?而不是使用editFinished()等要按回车才发送一个信号呀??请各位大虾指教呀。先谢啦。
离线onglus
只看该作者 5楼 发表于: 2009-10-11
       如果是多个编辑框,那你声明的槽函数要如何才能一次性的把光标进入编辑框内的这个信号发给所有的编辑框呢?我个人目前的做法是针对每一个编辑框分别构造出两个槽函数来,这两个槽函数分别用来检测seletionChange()和editingFinished()发出来的信号。这样一来,当lineEdit进入编辑状态的时候就相应的去响应它的编辑槽函数;当开始换行的时候就去响应换行槽函数的处理事件。
   我本人觉得我的做法还算比较简单,但是,缺点是不适合用于过多的编辑行,因为,这样会增加过多重复的代码。
[ 此帖被onglus在2009-10-14 20:04重新编辑 ]
Qt高阶编程交流群71555992,进群条件是非常勿扰。
离线ljp1205
只看该作者 4楼 发表于: 2008-11-11
今天上班无聊
刚试试了试
是可以滴

自己定义一个类派生自QLineEdit类
自己实现个enterEvent()函数
在这个函数里获得当前的text,
然后emit 一个信号。
信号接到哪,由你自己来定了
离线xyxo2008
只看该作者 3楼 发表于: 2008-11-11
谢谢两位哈。我先试试
离线rockyluo

只看该作者 2楼 发表于: 2008-11-11
鼠标不点击的话你可以参照下http://www.qtcn.org/bbs/read.php?tid=12406
用enterEvent(QEvent *)/ leaveEvent(QEvent *)
这是鼠标移动到按钮上就触发事件(信号)
你一样可写到QLineEdit中
鼠标如果需要点击的话,你就可以重写个keyPressEvent再在里头emit信号就行了
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线ljp1205
只看该作者 1楼 发表于: 2008-11-11
在window里是可以自定义一个控件类,在这个类里捕获mosusemove消息
类比下qt
是不是可以自己从QLineEdit里派生出一个自己的类来
重载下mouseMoveEvent函数
然后在这个函数里发射信号

以上仅是我个人的思路,没实践过
仅供参考
快速回复
限100 字节
 
上一个 下一个