使用QComboBox的过滤器小部件

Filter Widget using QComboBox

本文关键字:小部 过滤器 QComboBox 使用      更新时间:2023-10-16

我想使用 QComboBox 实现过滤器小部件。它应该工作的方式是,当我输入字母"a"时,它应该显示以"a"开头的项目,然后如果我输入"b",它应该显示带有前缀"ab"等的项目。我尝试覆盖QComboBox类的keyPressEvent,但没有奏效。我遇到的主要问题是,如何在下拉列表出现时使QComboBox可编辑?我像这样在按键事件中打开下拉列表,

void SearchCombo::keyPressEvent(QKeyEvent *e)
{
    ...
    listBox()->popup();
    ...
}

我找到了解决方案。我所做的是,将QListBox的(QComboBox有一个列表框)的keyPressEvent的QKeyEvent传递给QComboBox的LineEdit。在 LineEdit 中,使用该QKeyEvent调用keyPressEvent

覆盖