[英]c++ Qt, wait for second click
我正在使用Qt Creator创建一个使用C ++编写的简单绘图程序。 我有一个mouseevent,它应该使到单击鼠标的点的坐标到所有已经存在的最近点(点),然后将它们放在行起点坐标上。 算了 但是现在该事件应等待第二次单击鼠标,以再次获取最近的点坐标,并将其置于行的终点。 但是,它不等待第二个输入,而是将相同的第一个点也放置到线端点。
如何使mouseevent接受两次单击输入,而不是立即做所有事情? 可能吗? 先感谢您。
您不能使一个事件需要两次单击(当然,双击事件除外)。 但是,您可以在应用程序中建立状态,第一次单击将启动状态,第二次单击将完成状态。 伪代码来管理这个:
// in your constructor:
StartingClickPoint = INVALID; // indicate that we have not entered our special state
// in your mouse event handler:
if (StartingClickPoint == INVALID) {
// we're only now starting this state; we don't have enough information to complete it
StartingClickPoint = CurrentClickPoint;
return;
}
else {
// complete the state handling and arm for the next pair of clicks
EndingClickPoint = CurrentClickPoint;
DoSomethingWithTheClickPoints();
StartingClickPoint = INVALID; // reset for the next pair of clicks
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.