qtreeviewが選択されているときにEnterキーが押されたときに「イベント」が発生することを望みます。qtreeviewをサブクラス化したくないので(デザイナーにとっては簡単です)-イベントフィルターをインストールしようとしました。しかし、これはうまくいかなかったようです:
このクラスには、パブリック関数が含まれているだけです。
bool InputTreeEventHandler::eventFilter(QObject *obj, QEvent *event) const {
if (event->type() == QEvent::KeyPress) {
QKeyEvent *keyevent = dynamic_cast<QKeyEvent*>(event);
QTreeView* tree = dynamic_cast<QTreeView*>(obj);
if (keyevent->key() == Qt::Key_Enter) {
//code
}
} else {
return false;
}
}
そして、イベントは次のように追加されます。
ui.InputTreeView->installEventFilter(InputTreeKeyboardEater.get());
ui.InputTreeView
Enterキーを押したときに実行したいツリービューとInputTreeKeyboardEater
、オブジェクトへの(共有)ポインタはどこにありますかInputTreeEventHandler
上記の関数の開始時にブレークポイントを設定すると、イベントハンドラー全体が呼び出されていないことが示されます-何が間違っている可能性がありますか?