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 メソッドがありません。私はどうしたらいいですか?