C++ 如何检查小部件上是否发生了鼠标释放事件
我试图在一个小部件中捕获鼠标释放事件,以确保之前在同一个小部件中按下鼠标。mouseReleaseEvent已成功调用,但我不知道如何使用参数QMouseEvent来检查鼠标位置是否在小部件中。我当前的代码:C++ 如何检查小部件上是否发生了鼠标释放事件,c++,qt,C++,Qt,我试图在一个小部件中捕获鼠标释放事件,以确保之前在同一个小部件中按下鼠标。mouseReleaseEvent已成功调用,但我不知道如何使用参数QMouseEvent来检查鼠标位置是否在小部件中。我当前的代码: void DeviceWidget::mouseReleaseEvent(QMouseEvent* e) { if (_mouseClick) { _mouseClick = false; emit mouseClick(_deviceInf
void DeviceWidget::mouseReleaseEvent(QMouseEvent* e)
{
if (_mouseClick)
{
_mouseClick = false;
emit mouseClick(_deviceInformation);
}
}
非常感谢,您需要检查鼠标释放事件的本地位置是否在您的小部件中。我认为没有理由使用
\u mouseClick
成员变量。仅当鼠标按下此小部件时,才会调用此方法。当您按下按钮时,小部件开始跟踪鼠标,它将接收释放事件-无论鼠标在何处释放
void DeviceWidget::mouseReleaseEvent(QMouseEvent* e)
{
if (rect().contains(e->localPos()->toPoint()) {
emit mouseClick(_deviceInformation);
}
}
仅当释放小部件时鼠标位于小部件上时,才应触发此事件。检查它是多余的。不是,即使我在另一个地方(如桌面)释放鼠标,它也会被触发。请看一看释放事件报告给发生press事件的同一个小部件。你不应该对此做什么特别的事。释放时的实际指针位置无关。