QLineEdit 控件当鼠标单击其中一下,就触发一信号,怎么写?

小K小Q 2014-06-18 05:07:20
QLineEdit 控件是空白的,准备输入,当鼠标单击其中一下,进行输入,还没让其中内容变化,就触发一信号,怎么写?
不能用textChange () 发信号,这样是要求至少输入一个字母才触发事件,要在单击进入QLineEdit 控件时,还没有输入就触发。
...全文
1954 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
晋晔 2015-08-03
  • 打赏
  • 举报
回复
重写eventFilter事件,直接上代码,le_check就是QLineEdit bool Widget::eventFilter(QObject *obj, QEvent *event) { if(obj == ui->le_check) { if(event->type() == QEvent::MouseButtonPress) { qDebug() << "hello world"; } } return QWidget::eventFilter(obj,event); }
cuierpeng 2015-04-01
  • 打赏
  • 举报
回复
哪种方法呢?
小K小Q 2014-06-20
  • 打赏
  • 举报
回复
多谢各位,问题已解决!
wopabe 2014-06-19
  • 打赏
  • 举报
回复
1楼正解,在事件过滤器中拦截FocusIn事件,然后就可以做你想做的了
xiuxianshen 2014-06-19
  • 打赏
  • 举报
回复
focusIn Event
sdu_hanson 2014-06-19
  • 打赏
  • 举报
回复
重写一下QLineEdit ,重写focusInEvent
foruok 2014-06-19
  • 打赏
  • 举报
回复
你要自己重写 QLineEdit 吗?据我了解目前没有这样的信号发出。如果你重写 QLineEdit ,可以重写 event() 函数,当事件类型是QEvent::FocusIn 时发射一个你自己定义的信号出来,比如 gainFocus() 。这样就可以了。还有一种办法是重写 mousePressEvent,在它里面发出 gainFocus() 信号。 CSDN博文大赛,请投我一票,谢谢。 Qt on Android: Qt Quick 事件处理之信号与槽

16,816

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧