尝试查找触摸事件是否发生,或者只是绘制它们。
\n\n\nbool MyWidget::event(QEvent *event)\n{\n switch (event->type())\n {\n case QEvent::TouchBegin:\n case QEvent::TouchUpdate:\n case QEvent::TouchEnd: \n {\n\n QTouchEvent *touchEvent = static_cast(event);\n\n if (touchEvent->touchPoints().count() == 2) \n {\n const QTouchEvent::TouchPoint &touchPoint1 = touchEvent->touchPoints().first();\n const QTouchEvent::TouchPoint &touchPoint2 = touchEvent->touchPoints().last();\n nx=touchPoint1.scenePos().x();\n ny=touchPoint1.scenePos().y();\n pix = QPixmap::grabWidget (this,nx,ny,1,1);\n img = pix.toImage();\n rgb = img.pixel(0,0);\n color.setRgb(rgb);\n drawBit=1;\n }\n break;\n }\n\n case QEvent::Paint:\n\n return MyWidget::paintEvent( event); \n break;\n\n default:\n return false;\n break;\n }\n\n return true;\n}\n\n\n\nvoid MyWidget::paintEvent(QPaintEvent *event)\n{\n\ntime_counter++;\nfor(i=0;(ired,b[i]->green,b[i]->blue,255), Qt::SolidPattern));\npainter.drawEllipse(b[i]->x,b[i]->y,b[i]->w, b[i]->w);\npainter.drawLine(b[i]->x+b[i]->w/2,b[i]->y+b[i]->w,b[i]->x+b[i]->w/2,b[i]->y+2*b[i]->w);\n\nif(b[i]->ballDead==false)\nb[i]->y+=b[i]->vy;\n\nif(drawBit==1 && b[i]->red==color.red() && b[i]->green==color.green() && b[i]->blue==color.blue())\nballHit(i);\n\n\n}\n}\n\n\n\nRun Code Online (Sandbox Code Playgroud)\n\n\n此代码显示如下错误:\nmywidget.cpp:116:47: 错误:从 …