Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python QComboBox忽略键盘输入_Python_C++_Qt_Pyside - Fatal编程技术网

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(新过滤器());