2012-08-24 2 views
0

Qt에서 모델을 위젯에 매핑하는 데 어려움을 겪고 있습니다.Qt QDataWidgetMapper가 위젯에 매핑되지 않습니다.

헤더 파일 선언 :

Ui::Widget *ui; 
QStringList list; 
QStringListModel *model; 
QDataWidgetMapper *mapper; 

CPP 파일 구현 (생성자) :

ui->setupUi(this); //only creates a QComboBox called comboBox 
model = new QStringListModel(this); 
mapper = new QDataWidgetMapper(this); 
list << "Item 1" << "Item 2" << "Item 3"; 
model->setStringList(list); 
mapper->setModel(model); 
mapper->addMapping(ui->comboBox, 0); 
mapper->toFirst(); 

를 콤보 상자는 항목에 채워되지 않는 몇 가지 이유를 들어 다음과 같이 관련 코드는 QStringList 목록 도와주세요. 내가 뭘 잘못하고 있는지 말해주세요! 매퍼를 사용하지 않는 것이 좋습니다 (모델을 위젯에 직접 제공).하지만 여기에도 학습 측면이 있으므로 매퍼를 사용하지 않을 것을 제안하지 마십시오.

시간과 노력을 크게 평가합니다. 고맙습니다.

답변

1

QComboBoxQDataWidgetMapper과 직접 매핑 할 수 없습니다. 대신 별도의 모델을 사용해야합니다. 방법에 대한 예제는 Combo Widget Mapper을 확인하십시오.

아니면 그냥 모델로 콤보 상자를 운전하고 싶습니까? 그건 QDataWidgetMapper을위한 것이 아닙니다. 이를 위해 QComboBox::setModel()을 사용하십시오.

+0

스티븐 추에게 감사드립니다! – CSLover

관련 문제