Установите значение 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 ответ:
Вам нужно установить
currentIndex
изQComboBox
:QStringList genderList; genderList << "Male" << Female" << "Other"; ui->genderComboBox->setCurrentIndex(genderList.indexOf(sl[2]));
Хотя это работает для вашего примера, я предлагаю взглянуть на примеры, представленные в документации Qt ( пример книг, SQL Widget Mapper Example ), которые используют модели для автоматического заполнения содержимого виджета на основе таблиц SQL.