gpt4 book ai didi

c++ - 为什么总是在 mouseDoubleClickEvent 之前调用 mousePressEvent

转载 作者:行者123 更新时间:2023-12-02 01:03:49 27 4
gpt4 key购买 nike

请考虑以下代码:

#include <QWidget>
#include <iostream>
#include <QApplication>

class Widget : public QWidget
{
public:
void mousePressEvent(QMouseEvent* event)
{
std::cout << "mousePressEvent" < std::endl;
}

void mouseDoubleClickEvent(QMouseEvent* event)
{
std::cout << "mouseDoubleClickEvent" << std::endl;
}
};

int main(int argc, char** argv)
{
QApplication app(argc, argv);
Widget w;
w.show();
return app.exec();
}

每次处理双击时,输出为:

mousePressEvent
mouseDoubleClickEvent

这意味着 Qt 总是在按下一次后立即调用 mousePressEvent,而无需等待第二次按下。有没有办法关闭此选项,以便在双击时不会执行 mousePressEvent 调用。

最佳答案

我将在等于QApplication::doubleClickInterval()值的时间段内绕过单击事件的处理(使用QTimer)。如果在那段时间没有发生双击,我应该处理“单击”,否则应该处理双击。

关于c++ - 为什么总是在 mouseDoubleClickEvent 之前调用 mousePressEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com