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);
}
このコードでは、「ダブルクリック」というメッセージは表示されません。コードの何が問題なのですか?