Seite 1 von 1
QT4.3: QDataWidgetMapper
Verfasst: 18. Juli 2007 11:58
von nando
Hi,
kann mir jemand sagen, wie die Daten ueber den QDataWidgetMapper in das
Widget kommen?
Ich habe folgendes:
Code: Alles auswählen
MyTableModel *pModel = new MyTableModel;
QDataWidgetMapper *pMapper = new QDataWidgetMapper;
pMapper->setModel(pModel);
QLineEdit *pTest = new QLineEdit(this);
pMapper->addMapping(pTest, 0);
pMapper->toFirst();
Aber irgendwie wird nix im LineEdit angezeigt... Warum ?
wie genau kommen die Daten ueber das Model/Mapper in das LineEdit ?
Gruss,
Nando
Verfasst: 18. Juli 2007 12:24
von upsala
Genau so. Ich kann keinen Fehler im gezeigten Code erkennen. Im Model stehen aber schon Daten?
Verfasst: 18. Juli 2007 13:30
von nando
Ja, im Modell stehen daten...
die kann ich sehen, wenn ich QTableView mache und dann das modell setzte...
Jetzt habe ich herausgefunden, dass wenn ich ein StandardItemModel nehme anstelle des von QAbstractTableModel abgeleiteten Modells es funktioniert....
dann sehe ich aber in der QTableView keine Inhalte.... also die anzahl der spalten und zeilen stimmt zwar, aber es ist kein inhalt enthalten....
Dafuer funktioniert aber der oben gepostete Code mit dem QDataWidgetMapper..
HHHmmmm... Kann es sein, dass der QDataWidgetMapper nur mit Item-Modellen arbeiten kann ???
Verfasst: 18. Juli 2007 14:09
von nando
So auch das habe ich rausgefunden,
man muss beim Modell beim liefern von Daten in der data(..) methode auch
die daten fuer die Qt::EditRole liefern...
Dann klappt es auch mit einem QAbastractTable Modell..
Jetzt bleibt nur noch die entscheidende frage..:
Wie kann ich wenn ich ein eigenes Widget mit dem QDataMapper nutze die aenderungen abfangen?????
scheinbar wird intern irgendwas wie setText oder setValue aufgerufen... oder wieso funktioniert das sonst standardmaessig mit QLineEdit, QSpinBox etc....
ich habe aber ein eigenes Widget, kein QLineEdit... wo ich die aenderungen brauche...
Verfasst: 18. Juli 2007 16:42
von upsala
Hier stehen alle relevanten Informationen mit Beispielen.