Completer가 보이는 UI를 custom할 수 있다.

그래서 준비한 2탄

treeview도 가능하고

table view도 가능하다.

QStringListModel *dateModel = new QStringListModel(stringList);


#1 completer를 표시할 UI를 생성한다. 예제는 tableview

QTableView* tableView = new QTableView(dateModel);
patientViewModel->setParent(tableView);
tableView->horizontalHeader()->setVisible(false);
tableView->setShowGrid(false);

dateCompleter->setPopup(tableView);//


그리고 itemdelegate를 set해서 tableview를 더 풍성하게 보이고 싶다면...


#2 itemDelegate를 생성한다.

이 생성한 itemdelegate를 tableview에 넣어도 반영되지 않는다. 다음과 같이  completer의 popup에 바로 set해줘야 한다.!!!
dateCompleter->popup()->setItemDelegate(itemDelegate);


#3 model을 생성해서 임의로 만들고 싶다면?

QStandardItemModel *completerModel = new QStandardItemModel();

index = 0;

for (const auto& curRecord : records)
{
    QString name = list[index].name;
    QString genderString = list[index].gender
    QString birth = list[index].birth;
    completerModel->setItem(index, 0, new QStandardItem(name));
    completerModel->setItem(index, 1, new QStandardItem(genderString));
    completerModel->setItem(index, 2, new QStandardItem(birth));
    index++;
} 
return completerModel;
}


by 무위자연 2018. 12. 6. 17:33