在实现自定义拨号时,我查看了QDial,并注意到我不理解的mousePress / mouseRelease处理程序中的两个条件:
e->buttons() ^ e->button() //mousePress
e->buttons() & (~e->button()) //mouseRelease
在我看来,buttons字段与按钮异或(在第二种情况下被屏蔽,但效果相同),如果事件中涉及另一个按钮,则该字段为true。我看不到如果同时释放两个按钮,为什么应该忽略按钮的释放。这些条件需要防范什么?