В моем конструкторе я подключаюсь к базе данных Sqlite и читаю из нее «Категории» (QString
s). Я храню их в QList
. Я проверил через отладчик, если они пусты, но все в порядке.
В моем списке инициализаторов для int currCategoryIndex
установлено значение 0. И так как QComboboxes
индексация начинается с 0, он должен быть первым элементом.
Выдержка из моего конструктора:
dm.readDB_C(c_list); //reads into c_list
if(c_list.count() > 0) //has 1 or more items
updateCategories();
Это та часть, где я читаю базу данных, проверяю, пуста ли она, и если нет, то вызываю функцию, которая добавляет эти категории в QComboBox
.
updateCategories()
функция:
void MainWindow::updateCategories()
{
for(int i = 0; i < c_list.count(); i++){
if(ui->cmbCategory->findText(c_list[i]) != -1){ //-1 means "not found"
continue;
} else {
ui->cmbCategory->addItem(c_list[i]); //Add to QCombobox
}
}
ui->cmbCategory->setCurrentIndex(currCategoryIndex); //Should be the first item
}
У меня есть все элементы в моем QCombobox, но ни один из них не выбран. Я должен щелкнуть поле и выбрать один сам. Этого не должно было случиться.
Что случилось? Почему он сам не выбирает?
Изменить:
currentIndexChanged
сигнал:
void MainWindow::on_cmbCategory_currentIndexChanged(int index){
currCategoryIndex = index;
}