터치 이벤트가 발생했는지 확인하려고하거나 아니면 그냥 페인트합니다.'QEvent *'에서 'QPaintEvent *'로의 변환이 올바르지 않습니다.
bool MyWidget::event(QEvent *event)
{
switch (event->type())
{
case QEvent::TouchBegin:
case QEvent::TouchUpdate:
case QEvent::TouchEnd:
{
QTouchEvent *touchEvent = static_cast(event);
if (touchEvent->touchPoints().count() == 2)
{
const QTouchEvent::TouchPoint &touchPoint1 = touchEvent->touchPoints().first();
const QTouchEvent::TouchPoint &touchPoint2 = touchEvent->touchPoints().last();
nx=touchPoint1.scenePos().x();
ny=touchPoint1.scenePos().y();
pix = QPixmap::grabWidget (this,nx,ny,1,1);
img = pix.toImage();
rgb = img.pixel(0,0);
color.setRgb(rgb);
drawBit=1;
}
break;
}
case QEvent::Paint:
return MyWidget::paintEvent(event);
break;
default:
return false;
break;
}
return true;
}
void MyWidget::paintEvent(QPaintEvent *event)
{
time_counter++;
for(i=0;(ired,b[i]->green,b[i]->blue,255), Qt::SolidPattern));
painter.drawEllipse(b[i]->x,b[i]->y,b[i]->w, b[i]->w);
painter.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);
if(b[i]->ballDead==false)
b[i]->y+=b[i]->vy;
if(drawBit==1 && b[i]->red==color.red() && b[i]->green==color.green() && b[i]->blue==color.blue())
ballHit(i);
}
}
this code shows error like: mywidget.cpp:116:47: error: invalid conversion from ‘QEvent*’ to ‘QPaintEvent*’ mywidget.cpp:116:47: error: initializing argument 1 of ‘virtual void MyWidget::paintEvent(QPaintEvent*)’ mywidget.cpp:116:47: error: void value not ignored as it ought to be
아마을 잊어 버리셨습니까? –
red1ynx
그리고'return MyWidget :: paintEvent (event);'는'bool' 대신에'void'를 리턴하기 때문에 쓸 수 없습니다. – red1ynx
터치 이벤트를 처리 한 다음 나머지 핸들러에 대한 상위 처리기의 결과를 반환합니다. return QWidget :: event (event);'다른 이벤트 유형의 * all *을 올바르게 처리합니다. –