QT中鼠标左键按下如何判断在哪个编辑框里

gkljx 2013-09-08 04:10:11
想实现一个类似触摸按键的功能,有四个编辑框,首先选中一个编辑框,然后再去按按键,可以在编辑框里显示按下按键的内容。。
...全文
1101 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2013-09-09
  • 打赏
  • 举报
回复
可能是你对Qt的事件处理级别不太了解,简单点可以在qApp上安装个eventFilter,在里面处理鼠标点击事件然后判断点击的是哪一个widget
gkljx 2013-09-09
  • 打赏
  • 举报
回复
引用 6 楼 Inhibitory 的回复:
QWidget * QApplication::widgetAt(const QPoint & point) [static]
Returns the widget at global screen position point, or 0 if there is no Qt widget there.

This function can be slow.

See also QCursor::pos(), QWidget::grabMouse(), and QWidget::grabKeyboard().

我尝试过用监控鼠标左键,但是当鼠标点到控件上面的时候没有捕获到信息,不知道是怎么回事。。我用的是Dialog的窗口。。
gkljx 2013-09-09
  • 打赏
  • 举报
回复
引用 5 楼 jdwx1 的回复:
Qt更容易,只要在界面的这个类里,ui->xxx就能找到对应的控件(UI编辑器里记住控件名字)
这个我知道啊。。但是现在是如何判断我点的就是这个控件,就比如我鼠标按下去了,按得时什么呢?在哪里添加消息处理?
gkljx 2013-09-09
  • 打赏
  • 举报
回复
http://wenku.baidu.com/view/afe8f85aad02de80d4d840a9.html 在这个文档里可以很好地解决
绝版紫太狼 2013-09-09
  • 打赏
  • 举报
回复
在编辑框里弄个bool值的变量,有变化了就调用鼠标事件。这样子应该好理解一点。
wwk417 2013-09-09
  • 打赏
  • 举报
回复
你可以继承这个编辑框的类,在继承的类中添加一个信号,就是当这个编辑框有焦点时或则焦点变化时发送信号,信号的参数就是这个编辑框的ID,而你UI上画的编辑框就用这个类定义,然后在MainWindow中将这个信号和你的槽函数连接起来从而记录编辑框的ID,有这个ID了,之后的编辑就简单多了,我就是这么搞的,可以成功
gkljx 2013-09-09
  • 打赏
  • 举报
回复
引用 9 楼 Inhibitory 的回复:
可能是你对Qt的事件处理级别不太了解,简单点可以在qApp上安装个eventFilter,在里面处理鼠标点击事件然后判断点击的是哪一个widget
恩,确实不是特别理解,才开始接触QT三天,一些消息机制还没有领悟,望详解啊。。
Inhibitory 2013-09-08
  • 打赏
  • 举报
回复
QWidget * QApplication::widgetAt(const QPoint & point) [static]
Returns the widget at global screen position point, or 0 if there is no Qt widget there.

This function can be slow.

See also QCursor::pos(), QWidget::grabMouse(), and QWidget::grabKeyboard().

jdwx 2013-09-08
  • 打赏
  • 举报
回复
Qt更容易,只要在界面的这个类里,ui->xxx就能找到对应的控件(UI编辑器里记住控件名字)
gkljx 2013-09-08
  • 打赏
  • 举报
回复
引用 3 楼 lhfslhfs 的回复:
每次点击,把FLAG push进一个 vector变量里面,怎么样
想知道怎么确定点了几号编辑框?鼠标左键按下的事件我可以捕捉到,但是后面在哪个控件上我就没有办法确定了。。如果是MFC有GetDlgItem(IDC_EDIT2)->GetSafeHwnd()获得控件是什么。QT下有没有这种函数呢?我刚开始学QT,所以有点小白。。
青松2 2013-09-08
  • 打赏
  • 举报
回复
每次点击,把FLAG push进一个 vector变量里面,怎么样
gkljx 2013-09-08
  • 打赏
  • 举报
回复
引用 1 楼 lhfslhfs 的回复:
定义标记变量FLAG,1,2,3,4代表四个编辑框,点击相应编辑框就让FALG等于几,点击按钮时就根据FLAG来发送
这个我可以想到,问题是,我怎么判断我现点的是这个编辑框而不是另一个。。
青松2 2013-09-08
  • 打赏
  • 举报
回复
定义标记变量FLAG,1,2,3,4代表四个编辑框,点击相应编辑框就让FALG等于几,点击按钮时就根据FLAG来发送

16,813

社区成员

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

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