第7章 事件处理

发布: 2008-08-12 23:14


  • 重新实现事件处理器

  • 安装事件过滤器

  • 在集中处理过程中保持响应


  •     事件是由窗口系统或者Qt自己产生以响应不同事件。当用户按下或者翻译一个键盘键或者鼠标键时,一个键盘或者鼠标事件被生成。当窗口首次显示时,一个绘图事件被生成认告诉新的可见窗口它需要重绘自己。大多数事件被生成以响应用户的行为,但也有些,像计时器事件,是由系统独立生成的。
    当我们使用Qt编程的时候,我们几乎不需要考虑事件,因为当标志性事件发生时,Qt的物件会发射信号。当我们编写自定义物件或者我们想修改现有Qt物件的行为时事件变得非常有用。

        事件应该不会与信号冲突。有一个规则是:在使用物件的时候信号比较有用,而在实现物件的时候事件比较有用。例如,当我们使用QPushButton的时候,我们对它的clicked()信号更感兴趣而不是导致信号被发射的底层的鼠标或者键盘事件。但是如果我们在实现一个像QPushButton的类,我们就需要编写处理鼠标和键盘事件的代码并在必要的时候发射clicked()信号。


    原文: http://qtchina.tk/?q=node/233

    Powered by zexport