Установите значение QComboBox из QStringList


В моем приложении Qt C++ GUI у меня есть окно QDialog, там у меня есть несколько правок строк, и я устанавливаю отображаемые тексты вызовом функции и setText(). Я сохранил значения в QStringList (QStringList, который я заполняю с помощью запроса к базе данных) и установил текст следующим образом--

void MyDialog::setDataToForm(QStringList sl)
{
        ui->nameLineEdit->setText(sl[0]);
        ui->emailLineEdit->setText(sl[1]);
}

Теперь у меня есть QComboBox, а также (GenderComboBox). Я установил там три элемента-мужской, женский, другие (через Qt Creater Layout editor). В моем QStringList sl это значение сохраняется в sl[2].

Как я могу установить значение sl[2] в QComboBox???

1 2

1 ответ:

Вам нужно установить currentIndex из QComboBox:

QStringList genderList;
genderList << "Male" << Female" << "Other";
ui->genderComboBox->setCurrentIndex(genderList.indexOf(sl[2]));

Хотя это работает для вашего примера, я предлагаю взглянуть на примеры, представленные в документации Qt ( пример книг, SQL Widget Mapper Example ), которые используют модели для автоматического заполнения содержимого виджета на основе таблиц SQL.