门户
书籍
教程
论坛
问答
下载
签到
个人空间
帐号
自动登录
找回密码
密码
登录
立即注册
账号
自动登录
找回密码
密码
登录
立即注册
请绘制轨迹完成人机验证
由vaptcha提供技术支持
登录
注册
搜索
搜索
搜索
热搜
qml
quick
串口
输入中文
数据库
arm
百度地图
qt聊天
QT安装
安装
多窗口
中文乱码
聊天
局域网
鼠标
QT
图片
乱码
rs485通讯
多线程
android
多文档编辑器
本版
用户
本版
用户
【HUX】问题互助平台
博客
动态
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
精华区(请在“有问必答”发帖)
›
有问必答
›
界面美化
›
QT子控件接收并处理鼠标事件时如何通知父控件触发了哪个 ...
发布主题
返回列表
QT子控件接收并处理鼠标事件时如何通知父控件触发了哪个...
2
回复
5721
查看
[复制链接]
hzt1234hf
当前离线
积分
25
hzt1234hf
累计签到:1 天
连续签到:1 天
来源:
2018-10-19 11:42:06
显示全部楼层
|
阅读模式
1
Qter豆
QT子控件接收并处理鼠标事件时如何通知父控件触发了哪个子控件的鼠标事件?
例子就是单击子控件,子控件执行鼠标单击,同时把子控件的指针发给父控件的某个变量,然后父控件改变子控件的状态(如位置信息)
我现在使用的是信号槽实现的,点击同时emit一个信号,把自己发给父控件,这个方法聚合性太强了,所以来问问有没有更厉害的方法
我来回答
回复
使用道具
举报
baizy77
当前离线
积分
748
baizy77
累计签到:41 天
连续签到:1 天
2018-10-19 15:35:38
显示全部楼层
您可以尝试使用接口类(依赖倒置)的方法。具体来说,看您的消息是否可以进行抽象,比如设计一个抽象类CMsgInterface。并且为其提供一些您的业务所需的接口:比如获取鼠标坐标,获取尺寸等等。这些接口要定义为纯虚的。然后您在CMsgInterface的基础上派生所需的类,emit消息时使用CMsgInterface定义对象,但是指向new出来的派生类对象,接收方也用CMsgInterface,所以connect时也是用CMsgInterface。供参考。
回复
使用道具
举报
HangZhouLeo
当前离线
积分
27
HangZhouLeo
累计签到:11 天
连续签到:3 天
2019-1-31 15:11:42
显示全部楼层
如果你要将控制权给到父控件,你为什么要子控件去处理鼠标事件呢?直接父控件处理,然后通过坐标转换判断鼠标在哪一个控件上然后处理你的逻辑
回复
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了