제 생성자에서 Sqlite 데이터베이스에 연결하여 "Categories"(QString
)를 읽습니다. QList
에 저장합니다. 디버거를 통해 비어 있는지 확인했지만 모든 것이 정상입니다.QCombobox는 currentIndex를 변경할 때 선택하지 않습니다.
내 이니셜 라이저 목록에서 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;
}
사용중인 Qt 버전을 지정해야합니다. –
선택하지 않았습니까, 아니면 잘못된 항목을 선택 했습니까? – nonexplosive
응용 프로그램을 시작할 때 아무 것도 선택되지 않지만 QCombobox에 삽입됩니다. – Davlog