Python QComboBox忽略键盘输入
当Python QComboBox忽略键盘输入,python,c++,qt,pyside,Python,C++,Qt,Pyside,当QComboBox的下拉列表打开时,键盘输入被用作(不是特别智能的)搜索元素的方式。我想禁用它,并将键盘事件的处理传播到父窗口小部件。这件事怎么办?我曾尝试在一个子类中重新实现keyPressEvent,但显然不起作用,因为该函数不是在有键盘输入时被调用的函数。当弹出窗口显示时,接收事件的是QComboBox的视图,而不是框本身。您可以在其上放置事件筛选器: class Filter : public QObject { Q_OBJECT public: bool eventF
QComboBox
的下拉列表打开时,键盘输入被用作(不是特别智能的)搜索元素的方式。我想禁用它,并将键盘事件的处理传播到父窗口小部件。这件事怎么办?我曾尝试在一个子类中重新实现keyPressEvent
,但显然不起作用,因为该函数不是在有键盘输入时被调用的函数。当弹出窗口显示时,接收事件的是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());
类筛选器:公共QObject
{
Q_对象
公众:
bool事件过滤器(QObject*对象,QEvent*事件)
{
如果(事件->类型()==QEvent::按键){
返回true;
}
返回false;
}
};
QComboBox;
box.view()->installEventFilter(新过滤器());