Qtouchevent总是在任何互动中打电话4次



qtouchevent总是在与屏幕任何交互的情况下呼叫4次。即使我只是触摸屏幕0.1秒(不动并且没有释放手指(。因此,当触摸为实际上是结束或更新时,我无法获得信息。

bool ChartPlotter::touchEvent(QTouchEvent* ev) {
    switch (ev->type()) {
       case QTouchEvent::TouchBegin: {
           __android_log_write(ANDROID_LOG_WARN,"","begin");
       }
       case QTouchEvent::TouchUpdate: {
        __android_log_write(ANDROID_LOG_WARN,"","update");
    }
       case QTouchEvent::TouchEnd: {
             __android_log_write(ANDROID_LOG_WARN,"","end");
    }
 ...

和我刚触摸屏幕时的输出(我没有移动手指,也没有释放它,我只是触摸并将其固定在同一位置(

W   : begin
W   : update
W   : end
W   : end
``

您缺少每个casebreak,因为这样的情况都会陷入困境。

您不需要{},因此可以这样:

bool ChartPlotter::touchEvent(QTouchEvent* ev) {
switch (ev->type()) {
   case QTouchEvent::TouchBegin:
       __android_log_write(ANDROID_LOG_WARN,"","begin");
   break;
   case QTouchEvent::TouchUpdate: 
       __android_log_write(ANDROID_LOG_WARN,"","update");
   break;
   case QTouchEvent::TouchEnd:
       __android_log_write(ANDROID_LOG_WARN,"","end");
   break;
}
...

由于您进行了TouchBegin事件,因此它会打印出所有3个日志(因为没有断点可以阻止它们(,并且一旦发布了压力,触发了TouchEnd,因此您的end已两次打印出来。<<<<<<<<<<<<<<<<<<<<<<<<<</p>

最新更新