QT的事件机制

        要处理对象的事件,可以重写QObject::event()函数,这个函数会将特定事件进行分发,如鼠标事件mousePressEvent,键盘事件keyPressEvent,及paintEvent等,如果关心特定事件也可以重写这些事件.如果需要定时触发的timer机制,可以重写timerEvent函数.首先int myTimeId = startTimer(时间间隔ms);在timerEvent中:if(event->timerId() == myTimeId) {...........}

      QT提供了事件监控机制,在构造函数中调用对象1->installEventFilter(对象2);这样就可以使用对象2来监控对象1的事件,对象2重写其eventFilter函数,通过target参数来确定事件的发出者,并可以对事件进行干预.QT的事件是从子对象向父对象传递的,如果子对象处理了事件则停止传递.需要注意的是installEventFilter函数是定义在QObject上的,所以可以在QApplication上设置事件监控,控制整个应用程序的事件.重写QApplication::notify()函数可在事件刚发出就截获事件.如果在密集运行时希望界面响应事件,需要调用QApplication::processEvents();方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值