Есть ли способ заблокировать или заморозить qcombobox, чтобы пользователь не мог изменить индекс в qtcreator? - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок в QtCreator и C ++. Я пытаюсь помешать пользователю изменить индекс qcombobox после выбора один раз. Я пытался удалить все элементы и после добавления только выбранное значение, но это очень долгий путь. Я не мог найти какую-либо функцию, чтобы сделать это. Есть идеи?

1 Ответ

0 голосов
/ 28 апреля 2020

Блокировка QComboBox во время взаимодействия пользователя с ним, как правило, не очень хорошая идея с точки зрения взаимодействия с пользователем.

A QComboBox, как и любой другой QWidget, блокируется отключением его с помощью QWidget::setEnabled. Это также изменит его цвет (он «затенен»), сигнализируя о том, что пользователь больше не может с ним взаимодействовать.

Вы можете подключиться к сигналу QComboBox::currentIndexChanged для достижения вашей цели:

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

Обратите внимание, что для использования qOverload требуется C ++ 14.

...