无论如何要锁定或冻结 qcombobox 以防止用户更改 qtcreator 中的索引?

Is there anyway to lock or freeze qcombobox to prevent user to change index in qtcreator?

我是 QtCreator 和 c++ 的新手。我试图阻止用户在选择一次后更改 qcombobox 索引。我试图删除所有项目,然后只添加选择的值,但它的工作方式很长。我找不到任何功能来执行此操作。有什么想法吗?

在用户与之交互时锁定 QComboBox 就用户体验而言通常不是一个好主意。

A QComboBox 与任何其他 QWidget 一样,通过使用禁用它来锁定 QWidget::setEnabled。 这也会改变它的颜色(它是 "grayed-out"),表示用户不能再与它交互。

您可以连接到 QComboBox::currentIndexChanged 信号来实现您的目标:

connect(my_combo_box, qOverload<int>(&QComboBox::currentIndexChanged), [my_combo_box]() {
    my_combo_box->setEnabled(false);
});

注意qOverload的使用需要C++14。