首页 > 解决方案 > PyQt5 - 在不可编辑的 QComboBox 中需要 QCompleter 或等效项

问题描述

使用 PyQt5,我需要一个下拉只读项目列表,用户可以从中选择一个。

由于这些项目看起来非常相似,并且它们的文本大多包含递增的整数,例如 C000345、C000367 等,并且它们有几十个,因此对于操作员来说,与其交叉眼睛扫描他们可以键入的整个列表,这将更容易说“36”以仅查看包含字符串“36”的项目,或者到达第一个此类项目的位置。

但是,操作员没有必要能够编辑任何项目或更改列表。正如我所说,这只是一个简单的选择下拉菜单。

但是从 Qt5 设计的一个明显疯狂的方面来看,这两个要求冲突:为了能够定义 QCompleter,或者甚至使用 QComboBox 的默认 QCompleter,下拉列表必须定义为 Editable。将其定义为不可编辑立即核对任何关联的 QCompleter。

所以总而言之,我想知道是否有任何简单的方法来实现这一点,即如果一个 QComboBox(或任何类似的小部件)包含“A”、“B”、“C”等行,那么我希望操作员是只需键入“C”即可选择“C”。但我不希望他们能够更改任何这些行或添加新行。它不应该是火箭科学,但显然 PyQt5 和 Qt5 是!

标签: pythonpyqtpyqt5

解决方案


推荐阅读