Страницы

Поиск по вопросам

воскресенье, 5 января 2020 г.

Как сделать некоторые пункты QComboBox временно недоступными для выбора

#cpp #qt5


коллеги!
Среда IDE QT Creator 5.10. У меня такой вопрос. Есть QComboBox, у которого много
пунктов. В зависимости от смены режимов некоторые пункты должны становиться недоступными
для выбора, но нельзя просто стереть текущий набор пунктов и заполнить только разрешёнными.
Надо сделать чтобы недоступные пункты остались, но изменили цвет на серый и стали недоступными
для выбора пользователем. Необходимо чтобы номера разрешённых пунктов выпадающего меню
не изменялись потому что выбор пунктов и смену режимов может выполнять не только пользователь,
но и управляемая система, а у неё номера фиксированные.
Пример:

QStringList interlivingPSK;
interlivingPSK << "1: Zero"
               << "2: Ultra Short"
               << "3: Very Short"
               << "4: Short"
               << "5: Medium"
               << "6: Long"
               << "7: Very Long";
ui->comboBoxInterleaverPSK->addItems(interlivingPSK);
ui->comboBoxInterleaverPSK->setCurrentIndex(4);


Как, например, "загрэить" пункты 2, 3, 5, 7 ?
    


Ответы

Ответ 1



Обратитесь к модели QComboBox и через нее сделайте элементы неактивными: QStandardItemModel* model = (QStandardItemModel*) ui->comboBoxInterleaverPSK->model(); model->item(1)->setEnabled(false); model->item(2)->setEnabled(false); model->item(4)->setEnabled(false); model->item(6)->setEnabled(false);

Комментариев нет:

Отправить комментарий