繁体   English   中英

c ++ Qt,等待第二次点击

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM