#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);
Комментариев нет:
Отправить комментарий