QT事件与信号的区别

  1. 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在QT中使用一个对象来表示一个事件,继承自QEvent类。需要说明的是事件与信号并不相同,比如单击一下界面上的按钮,那么就会产生鼠标事件QMouseEvent(不是按钮产生的),而因为按钮被按下了,所以它会发出clicked()单击信号(是按钮产生的)。这里一般只关心按钮的单击信号,而不用考虑鼠标事件,但是如果要设计一个按钮,或者当单击按钮时让它产生别的效果,那么就要关系鼠标事件了。可以看到,事件与信号是两个不同层面的东西,发出者不同,作用也不同。在QT中,热河QObject子类实例都可以接收和处理事件。
    2.在每个函数的最后都会调用QApplication类的exec()函数,它会使QT应用程序进入事件循环,这样就可以使应用程序在运行时接收发生的各种事件。一旦有时间发生,QT便会构建一个相应的QEvent子类对象来表示,然后将它传递给相应的QObject对象或其子对象。
    事件是先传递给指定窗口部件的,确切的说应该是先传递给获得焦点的窗口部件的。但是如果该部件忽略掉该事件,那么这个事件就会传递给这个部件的父部件。在重新实现事件处理函数时,一般要调用父类的相应事件处理函数来实现默认操作。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值