1
我希望在選擇qtreeview時按下Enter鍵時發生「事件」。因爲我不希望子類qtreeview(更容易爲設計師) - 我試圖安裝一個事件過濾器。然而,這似乎並沒有工作:QT eventfilter for 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
是我樹狀希望按下輸入時動作,並且InputTreeKeyboardEater
a(共享)指向一個對象的指針InputTreeEventHandler
當把一個breakpoi nt在上面的函數啓動時顯示整個事件處理程序甚至沒有被調用 - 我可能做錯了什麼?
謝謝,我一直對qt的常量正確性「缺乏」感到驚訝:/ – paul23 2012-02-13 20:53:09
@ paul23爲什麼eventfilter函數應該是const?實施者可能想要修改這個 - 而且這不應該需要演員... – 2013-06-04 12:35:10