防止修改项目列表时更改可编辑的 QComboBox 选择

Prevent editable QComboBox selection from changing when item list modified

我有一个包含 ID 号列表的可编辑 QComboBox。

ID 号表示连接到系统的设备。在运行时频繁添加和删除设备。

可编辑组合框的目的是在其列表中包含当前附加的 ID 列表,以便于选择,但同时允许用户手动输入当前不存在的设备的 ID。此外,ID 可以输入空字符串。

基本上,我想为用户提供一种输入任意(或不输入)ID 的方法,同时可以快速选择当前连接的设备(在运行时更改)。

我目前没有使用列表模型来维护列表,我只是使用 QComboBox 的添加和删除功能。

我需要选择在添加或删除设备时不会更改。但是,我 运行 遇到以下问题:

有没有办法使在组合框中添加和删除项目永远不会修改编辑框中的选择?或者甚至是实现我的目标的其他 UI 元素?

在更新组合框之前,将当前 selected ID(或空白字符串)保存到临时文件中。多变的。修改组合框内容后,检查该 ID 是否仍然存在于组合框中(例如 findText())。如果是,select 它与 setCurrentIndex()。如果没有,设置为 setCurrentText()setEditText().