qt事件处理
qt事件处理比较恶心,各个事件都是独立的。如果同一时间出现多个事件,某些事件在qt中接收不到。
可以参考qtbase源码事件处理部分,所有的事件都在switch…case中处理,所以一次循环只会处理一个事件。
主窗口中可以通过setMouseTracking来设置,鼠标点击和滑动事件操作(默认鼠标保持Down状态才有mousemove事件),qwidget中的子控件没有则是,鼠标保持Down状态始终无法接收到消息。
参考代码,QEvent::MouseMove和QEvent::MouseButtonPress,同一个循环不可能同时处理两个事件。鸡肋!!!
代码上,通过单一的事件避免同时处理两个事件的操作。