Problem mit QSqlTableModel

Alles rund um die Programmierung mit Qt
Antworten
bob446
Beiträge: 35
Registriert: 15. August 2009 11:28

Problem mit QSqlTableModel

Beitrag von bob446 »

Hallo ,
ich habe folgendes Problem:
ich verwende ein QSqlTableModel zusammen mit meiner Datenbank.
Meine angezeigte Tabelle besteht aus insgesamt 5 Feldern, davon möchte ich allerdings nur 2 anzeigen lassen, die anderen sollen bei jedem Item gespeichert werden, um später verwendet werden zu können. Was muss ich dazu tun? SetData vom QSqlTableModel überschreiben? Bzw wie werden dem Model die Daten der Tabelle mitgeteilt? Ich finde leider keine Erklärung dazu.
mfg
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Nicht getestet:
Über QSqlTableModel::fieldIndex() den index deiner Spalte finden, und über QTableView::setColumnHidden dann verstecken.
Die Daten der Spalte sind immer noch vorhanden, werden aber nicht angezeigt.
bob446
Beiträge: 35
Registriert: 15. August 2009 11:28

Beitrag von bob446 »

Ok vielen Dank ! Ich habe es mal an einem kleinen Beispiel getestet, die Daten sind vorhanden und man kann auf sie zugreifen.
Allerdings habe ich noch ein Problem beim Zugriff auf die Daten nach einem drag&drop Vorgang. Muss ich dazu die MimeData-Methode überschreiben? Scheinbar wird entweder der nicht angezeigte Teil nicht übergeben oder ich greife noch falsch auf die Werte zu (was ich vermute).
Hier mal der Ausschnitt zum Decodieren der Dropped Data :

Code: Alles auswählen

QDataStream stream(&itemData , QIODevice::ReadOnly);

			QVector<QMap<int, QVariant> > data;
			while (!stream.atEnd()) {
				int r, c;
				QMap<int, QVariant> v;
				stream >> r >> c >> v;
				data.append(v);
			}
Vllt kann mir da jemand helfen. Bin für jede Hilfe dankbar :)
Antworten