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