1
약간의 Symbian 앱을 작성 중이며 QDataWidgetMapper에 문제가 있습니다. 나는 몇 가지 테스트 행로 데이터베이스를 채우는되기 전에Qt 4 Sqlite, QDataWidgetMapper 문제
void Widget::bindToData(){
databaseManager = new DatabaseManager();
dataMapper = new QDataWidgetMapper();
dataMapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
dataMapper->setModel(databaseManager->getTableModel());
dataMapper->addMapping(ui->debugLabel, databaseManager->getTableModel()->fieldIndex("item")); //ko
QSqlQuery q;
bool ret = q.exec("SELECT * FROM expense");
if (!ret){
databaseManager->showDebugMsg(q.lastError().text());
}
while (q.next()) {
QString item = q.value(1).toString();
databaseManager->showDebugMsg(item); //ok
}
dataMapper->toFirst();
}
와 나는 일을 확신
때문에databaseManager-> showDebugMsg (항목);이 코드입니다
올바른 데이터를 보여주세요. 그러나 매핑이 실패합니다.
QSqlTableModel * DatabaseManager::getTableModel(){
tableModel->select();
return tableModel;
}
여기 그것은 DatabaseManager 생성자입니다 : :이 getTableModel은 매우 간단하다 insertTestExspense 작동하기 때문에, 내가 문제가 설정 가능()에있을 수 있습니다 생각
DatabaseManager::DatabaseManager(){
debugMsgBox = new QMessageBox();
this->deleteDB();
this->openDB();
this->createExpenseTable();
this->insertTestExpense("test", 11.0);
tableModel = new QSqlTableModel();
tableModel->setTable("expense");
}
...하지만 난 할 수 내가 무엇을 놓치고 있는지 보지 마라.
어떤 생각? 당신이 그것을 작동하도록 할 수있는 일의
간주한다. 하지만 "텍스트"매개 변수를 지정해야하는 이유는 무엇입니까? 설명서는 http://doc.qt.nokia.com/latest/qdatawidgetmapper.html#addMapping-2 여기에 약간의 설명이 없습니다. "사용할 속성을 지정할 가능성을 추가합니다."... 그러나 개체의 속성은 무엇입니까? – Segolas
addMapping에서는 위젯과 모델 섹션 간의 매핑을 지정할 수 있습니다. PropertyName 매개 변수는 매핑에 사용되어야하는 위젯의 속성을 정의 할 수 있습니다. –
ok, 다시 한 번 감사드립니다. – Segolas