我想创建一个可编辑的 QComboBox,它根据搜索查询过滤结果并相应地更新下拉条目。
阅读如何根据文本输入过滤 PyQt QCombobox 项目后?我试图在 C++ 中实现类似的东西。
但是我现在不能在 QComboBox 中存储任何东西。即使通过 addItem() 添加新条目后,总计数仍然为 0。
这是什么原因,我如何使用 QSortFilterProxyModel 在 QComboBox 中插入条目?
这是代码的相关片段:
SearchBox = new QComboBox(this);
SearchBox->setEditable(true);
// Try adding a few entries and check if they persist after changing the model
SearchBox->addItem(QString("hi"));
SearchBox->addItem(QString("bye"));
int count = SearchBox->count(); // count = 2
ProxyModel = new QSortFilterProxyModel;
ProxyModel->setSourceModel(SearchBox->model());
ProxyModel->setFilterCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
SearchBox->setModel(ProxyModel);
// Check count again
count = SearchBox->count(); // count = 0 <- Why?
// Try adding new entries
SearchBox->addItem(QString("Hi again"));
count …Run Code Online (Sandbox Code Playgroud)