1

QWidget に QScene オブジェクトがあり、QWidget 内に QGraphicsView があります。画像を QPixMap に変換し、要素として QScene に渡し、QGraphicsView クラスでタッチ イベントを定義しました。QGraphicsView のクリエーター メソッドで、次のようにタッチ イベントを有効にしました。

viewport()->setAttribute(Qt::WA_AcceptTouchEvents);

ViewPortEvent メソッドをオーバーライドしてタッチ イベントを管理しています。

bool DicomView::viewportEvent(QEvent *event)

{

    if(event->type() == QEvent::TouchBegin)

    {

        QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);

              .......

return QGraphicsView::viewportEvent(event);

}

PS: DicomView は QGraphicsView の一種です。

私の問題は、アプリケーションを実行するとビューからタッチ入力を取得できますが、QView にアクセスすると QPixMap からタッチ入力を取得できないことです。QGraphicsView の代わりに QScene 内にメソッドを配置しようとしましたが、QScene には ViewPortEvent メソッドがありません。私はどうしたらいいですか?

4

0 に答える 0