面包类网站设计,猪肉价格最新消息,移动应用开发代码,广告设计公司绩效考核1. 事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用一个对象来表示一个事件#xff0c;它继承自QEvent类。
2. 事件和信号 事件与信号并不相同#xff0c;比如我们使用鼠标点击了一下界面上的按钮#xff0c;那么就会产生…1. 事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用一个对象来表示一个事件它继承自QEvent类。
2. 事件和信号 事件与信号并不相同比如我们使用鼠标点击了一下界面上的按钮那么就会产生鼠标事件QMouseEvent不是按钮产生的而因为按钮被按下了所以它会发出clicked()单击信号是按钮产生的。这里一般只关心按钮的单击信号而不用考虑鼠标事件但是如果要设计一个按钮或者当鼠标点击按钮时让它产生别的效果那么就要关心鼠标事件了。可以看到事件与信号是两个不同层面的东西它们的发出者不同作用也不同。 常见事件鼠标事件、键盘事件、定时事件、上下文菜单事件、关闭事件、拖放事件、绘制事件等。
3. 事件的处理
方法一重新实现部件的paintEvent()mousePressEvent()等事件处理函数。这是最常用也的一种方法不过它只能用来处理特定部件的特定事件。
方法二重新实现notify()函数。这个函数功能强大提供了完全的控制可以在事件过滤器得到事件之前就获得它们。但是它一次只能处理一个事件。
方法三向QApplication对象上安装事件过滤器。因为一个程序只有一个QApplication对象所以这样实现的功能与使用notify()函数是相同的优点是可以同时处理多个事件。
方法四重新实现event()函数。QObject类的event()函数可以在事件到达默认的事件处理函数之前获得该事件。
方法五在对象上安装事件过滤器。使用事件过滤器可以在一个界面类中同时处理不同子部件的不同事件。
在实际编程中最常用的是方法一其次是方法五。
4. QEvent类 基本的 QEvent 只包含了一个事件类型参数。QEvent 的子类包含了额外的描述特定事件的参数。枚举QEvent::Type这个枚举类型定义了Qt中有效的事件类型。事件类型和每个类型的专门类如下