qt event事件处理

qt事件处理

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

参考代码,QEvent::MouseMove和QEvent::MouseButtonPress,同一个循环不可能同时处理两个事件。鸡肋!!!


代码上,通过单一的事件避免同时处理两个事件的操作。

你可能感兴趣的:(问题案例,qt,开发语言)