2

この単純な QWidget ベースのプログラムでマルチ itouch イベントを処理しようとしていますが、タッチ イベントを受け取ることができません。

"MyWidget.h"

#include <QWidget>
class QPaintEvent;
class QEvent;

class MyWidget : public QWidget
{
    Q_OBJECT
public:
    explicit MyWidget(QWidget *parent = 0);

protected:
    void paintEvent(QPaintEvent *);
    bool event ( QEvent * event );


};


"MyWidget.cpp"

MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent)
{
    setAttribute(Qt::WA_AcceptTouchEvents);
}

void MyWidget::paintEvent(QPaintEvent *evt) {

    QPainter painter(this);
    painter.fillRect(rect(),QColor(0,255,0));
  //  painter.drawText(QPoint(rect().left(),rect().top()),"Hello world");
}

bool MyWidget::event(QEvent *event){
    if(event->type() == QEvent::TouchBegin ||
            event->type() == QEvent::TouchEnd ||
            event->type() == QEvent::TouchUpdate ){

        qDebug() <<"Touch events";
    }
    else if(event->type() == QEvent::MouseButtonDblClick) {
        qDebug() <<"double click";

    }

    return QWidget::event(event);
}

ここに何か欠けていますか?

4

1 に答える 1