event->buttons() & Qt::LeftButton 和 event->buttons() == Qt::LeftButton 在这里的效果一致,但这两个语句完全不等价(效果一致仅仅是一个特例)。event->buttons() 的返回值是 Qt::MouseButtons,这是一个 flag 类型,可以使用 | 进行按位或的操作。也就是说,event->buttons() 可能返回类似 Qt::LeftButton | Qt::RightButton (鼠标左右键同时按下),因此,要判断“正确的”左键是否按下,只能使用按位与运算。如果平时使用的是后面的写法,有可能存在一定的隐患(当然,后者确定只按下左键,不考虑多建一起按下的情况,也许是更常见的判断)。
Qt event->buttons()
最新推荐文章于 2023-10-30 21:58:56 发布