3

QDockWidget 内にある QPlainTextEdit でダブルクリック イベントをキャプチャする必要があります。

実際のコードでは、サイズ変更操作を処理するために QDockWidget にイベント フィルターをインストールし、ダブル クリック イベントを処理するために QPlainTextEdit にイベント フィルターをインストールしました。

// Resize eventfilter
this->installEventFilter(this);
ui->myPlainTextEdit->installEventFilter(this);

しかし、QDockWidget では機能しますが、QPlainTextEdit のダブルクリック イベントをキャッチできません。

bool MyDockWidget::eventFilter(QObject *obj, QEvent *event) {
  if (event->type() == QEvent::Resize && obj == this) {
      QResizeEvent *resizeEvent = static_cast<QResizeEvent*>(event);
      qDebug("Dock Resized (New Size) - Width: %d Height: %d",
             resizeEvent->size().width(),
             resizeEvent->size().height());

  } else if (obj == ui->myPlainTextEdit && event->type() == QMouseEvent::MouseButtonDblClick) {
      qDebug() << "Double click";
  }
  return QWidget::eventFilter(obj, event);
}

このコードでは、「ダブルクリック」というメッセージは表示されません。コードの何が問題なのですか?

4

1 に答える 1