1
當QComboBox
的下拉列表打開時,鍵盤輸入用作搜索元素的一種(並不特別聰明)的方式。我想禁用它並將鍵盤事件的處理傳播給父窗口小部件。人們如何去做這件事?我試過在子類中重新實現keyPressEvent
,但顯然這不起作用,因爲該函數不是在鍵盤輸入時被調用的函數。QComboBox忽略鍵盤輸入
當QComboBox
的下拉列表打開時,鍵盤輸入用作搜索元素的一種(並不特別聰明)的方式。我想禁用它並將鍵盤事件的處理傳播給父窗口小部件。人們如何去做這件事?我試過在子類中重新實現keyPressEvent
,但顯然這不起作用,因爲該函數不是在鍵盤輸入時被調用的函數。QComboBox忽略鍵盤輸入
當顯示彈出窗口時,接收事件的是QComboBox
的視圖,而不是盒子本身。你可以放置一個事件過濾器:
class Filter : public QObject
{
Q_OBJECT
public:
bool eventFilter(QObject *object, QEvent *event)
{
if (event->type() == QEvent::KeyPress) {
return true;
}
return false;
}
};
<...>
QComboBox box;
box.view()->installEventFilter(new Filter());