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

标签 c++ qt qt5 qcombobox

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

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

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

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

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

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

  • 当当前输入的 ID(手动或通过列表选择)从列表中删除时,选择将更改为列表中的另一个 ID。
  • 当列表为空且手动输入 ID 或根本未输入任何 ID 时,在将 ID 添加到列表时更改选择。

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

最佳答案

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

关于c++ - 防止修改项目列表时更改可编辑的 QComboBox 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56725161/

相关文章:

c++ - 从 Qt 5.5 中的 QUrl 中删除 `www.`

c++ - glfwGetTime() 和静态变量

c++ - IP 别名与 QWebView (Qt/C++)

c++ - 在 Qt 列表中存储来自数据库的查询结果的更好方法

c++ - 使用 QDateTimeAxis 时 QChart 不显示任何系列数据

c++ - 为什么不能在 C++ 中将变量用于数组大小?

c++ - 无法完全删除结构填充 - 代码块 : Cygwin

c++ - Qt C++ MySQL 到 QTableView 多个连接表为空

c++ - QtableWidget:在insertRows()中添加QCombobox

c++ - 如何摆脱 SQL 查询的字符串连接