门户
论坛
问答
下载
签到
帐号
自动登录
找回密码
密码
登录
立即注册
登录
注册
搜索
【HUX】问题互助平台
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
精华区(请在“有问必答”发帖)
›
有问必答
›
图形动画
›
请问这个event的父部件是谁?
发布主题
返回列表
请问这个event的父部件是谁?
4
回复
7965
查看
[复制链接]
fangyinfei2019
当前离线
积分
128
fangyinfei2019
累计签到:2 天
连续签到:1 天
来源:
2019-8-25 16:42:23
显示全部楼层
|
阅读模式
1
Qter豆
在主窗口触发closeEvent事件时,
void
myWidget
::
closeEvent
(
QCloseEvent
*
event
)
中通过语句 event->ignore() 选择忽略了该事件,那么该closeEvent事件继续传递给“
父组件
”,那这个父组件究竟是谁?是myWidget?
附件:
您需要
登录
才可以下载或查看,没有帐号?
立即注册
最佳答案
dtswy
查看完整内容
事件在组件之间的传递规则:是从子组件到父组件一层层传递,直到传递到顶级主窗口为终止,不在继续传递。如:QWidget窗口上放一个QGroupBox,其上放一个QSpinBox,当在SpinBox上按下鼠标左键,则此事件先传递给SpinBox组件,不处理则继续传递给GroupBox组件,仍然没处理则传递给主窗口,无论主窗口处理与否,都不在传递。 所以楼主的问题,closeEvent事件会传递给本级组件myWidget,无论处理与否都不会继续传给父组件。因为按楼主的 ...
回复
使用道具
举报
dtswy
当前离线
积分
30
dtswy
累计签到:19 天
连续签到:1 天
2019-8-25 16:42:24
显示全部楼层
事件在组件之间的传递规则:是从子组件到父组件一层层传递,直到传递到顶级主窗口为终止,不在继续传递。如:QWidget窗口上放一个QGroupBox,其上放一个QSpinBox,当在SpinBox上按下鼠标左键,则此事件先传递给SpinBox组件,不处理则继续传递给GroupBox组件,仍然没处理则传递给主窗口,无论主窗口处理与否,都不在传递。
所以楼主的问题,closeEvent事件会传递给本级组件myWidget,无论处理与否都不会继续传给父组件。因为按楼主的意思,这个myWidget应该是顶级主窗口,没有父组件。
对于
“选择忽略了该事件,那么该closeEvent事件继续传递给父组件
”这句话是从Qt帮助信息中翻译过来的。而且缺少了“可能”二字。
回复
使用道具
举报
nxc2018
当前离线
积分
220
nxc2018
累计签到:184 天
连续签到:1 天
2019-8-26 14:38:52
显示全部楼层
你这个主窗口是myWidget的窗口吧,是的话就是他自己
回复
使用道具
举报
fangyinfei2019
当前离线
积分
128
fangyinfei2019
累计签到:2 天
连续签到:1 天
2019-8-31 10:46:03
显示全部楼层
原来如此!初学Qt,请多多包涵,谢谢大神指点!
回复
使用道具
举报
fangyinfei2019
当前离线
积分
128
fangyinfei2019
累计签到:2 天
连续签到:1 天
2019-8-31 10:47:10
显示全部楼层
dtswy 发表于 2019-8-25 16:42
事件在组件之间的传递规则:是从子组件到父组件一层层传递,直到传递到顶级主窗口为终止,不在继续传递。如 ...
原来如此!初学Qt,请多多包涵,谢谢大神指点!
回复
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了