Seite 1 von 1

QSqlTableModel mit QTableView speichern?

Verfasst: 2. Juli 2010 10:49
von reinki0013
Hallo zusammen!

ich kämpfe zurzeit mit ein paar kleinigkeiten bei meinem programm...

und zwar zeige ich in einem QTableView eine Übersicht eines Eintrages an.
In dieser Zeile wo der Eintrag steht, kann ich mittels ComboBoxen in den jeweiligen Spalten verschiedene Dinge auswählen.

z.B.
Name | SystemNr. | ...

in manchen Feldern stehen jetzt Einträge drinnen und in manchen steht noch nichts drinnen.
Wenn ich jetzt bei einer ComboBox etwas auswähle, möchte ich das gerne in meiner Datenbank speichern.
Wenn ich in der ComboBox, wo jetzt noch nichts drinnen ist, etwas auswähle und die "Enter"-Taste drücke, ist die komplette QTableView leer, der Eintrag wird aber gespeichert.

Wie kann ich das abfangen das er mir die QTableView nicht ausleert?
Ich würde es gerne über einen Button realisieren oder wie auch immer dann, auf jedenfall will ich das ganze speichern und gleich die QTableView aktualisieren damit das gespeicherte angezeigt wird.

Ich hoffe Ihr versteht was ich für ein Problem habe, lest sich sicherlich sehr kompliziert, is aber ganz simple...
Ich hoffe das Ihr auch eine simple lösung für mich habt...

freue mich auf zahlreiche ideen und vorschläge...

danke

Re: QSqlTableModel mit QTableView speichern?

Verfasst: 2. Juli 2010 15:14
von Troll.Soft
reinki0013 hat geschrieben:Wie kann ich das abfangen das er mir die QTableView nicht ausleert?
Am Besten gar nicht. Durch das Drücken der Entertaste hat sich Dein Datensatz geändert. Danach rufst Du die Funktion auf, die Dein TableView mit Daten füttert, alles ist da und auf dem neuesten Stand.
tschüß
Troll.Soft

Re: QSqlTableModel mit QTableView speichern?

Verfasst: 5. Juli 2010 07:30
von reinki0013
Troll.Soft hat geschrieben:
reinki0013 hat geschrieben:Wie kann ich das abfangen das er mir die QTableView nicht ausleert?
Am Besten gar nicht. Durch das Drücken der Entertaste hat sich Dein Datensatz geändert. Danach rufst Du die Funktion auf, die Dein TableView mit Daten füttert, alles ist da und auf dem neuesten Stand.
tschüß
Troll.Soft
das der datensatz geändert wird und mein table-view mit neuen daten gefütter wird ist mir eigentlich klar.
aber wieso leert es mir die komplette table-view aus und füllt sie mir nicht mehr?? es is dann gar nichts mehr in der table-view...

lg

Verfasst: 5. Juli 2010 10:49
von Troll.Soft
Da ich Dein Programm nicht kenne, läßt sich die Frage nach dem Ausleeren nicht beantworten.
Wo liegt Dein Problem das TableView nicht anschließend mit Daten neu zu befüllen?

Verfasst: 8. Juli 2010 13:43
von reinki0013
hallo,

besten dank für eure hilfe, hab das problem lösen können...

habe jetzt noch eine frage an euch:

und zwar wie kann ich einen eintrag in meiner tableview wieder auf 0 setzen?
wenn ich was ausgewählt habe, möchte ich es auch wieder auf 0 setzen können.

gibt es da ein signal dafür oder so etwas in die richtung?
muss ja wissen welche zelle gedrückt wurde.

hoffe ihr könnt mir weiterhelfen.

danke,

lg

Verfasst: 8. Juli 2010 13:49
von jerry42
Hallo,

vielleicht ist es das was Du suchst:
http://doc.trolltech.com/4.6/qabstracti ... ctionModel

Gruß
jerry42

Verfasst: 8. Juli 2010 14:25
von reinki0013
jerry42 hat geschrieben:Hallo,

vielleicht ist es das was Du suchst:
http://doc.trolltech.com/4.6/qabstracti ... ctionModel

Gruß
jerry42
hi,

also der tipp war schon mal super, komme jetzt mit dem signal doubleClicked(QModelIndex) an meine Daten ran...

jetzt würde ich aber gerne die ausgewählte zelle auf 0 setzen (sprich NULL)...
wie kann ich diese zelle am einfachsten auf 0 setzen?

lg

Verfasst: 9. Juli 2010 09:04
von reinki0013
hallo,

also das problem mit dem auf NULL setzen habe ich auch schon lösen können über

Code: Alles auswählen

QSqlQuery query("UPDATE `table` SET `column`=NULL WHERE `ID`='Name'"
jetzt ist es momentan so, dass ich nur mittels der "ENTER"-Taste in meine Funktion komme(is mir auch klar)

hier das signal:

Code: Alles auswählen

void QAbstractItemView::activated ( const QModelIndex & index )
habt ihr eine idee, wie ich es anstatt der "ENTER"-Taste mit der "RETURN"-Taste oder "ENTF"-Taste machen kann (ich brauche aber immer den QModelIndex)??

vielleicht könnt ihr mir weiterhelfen, wäre toll!

danke,

lg

Verfasst: 9. Juli 2010 10:00
von jerry42
vermutlich ist es das was du suchst:
http://doc.trolltech.com/4.6/qwidget.html#keyPressEvent

hier findest du ein Beispiel
http://doc.trolltech.com/4.6/tools-customcompleter.html

viele grüße
jerry42

Verfasst: 12. Juli 2010 08:12
von reinki0013
jerry42 hat geschrieben:vermutlich ist es das was du suchst:
http://doc.trolltech.com/4.6/qwidget.html#keyPressEvent

hier findest du ein Beispiel
http://doc.trolltech.com/4.6/tools-customcompleter.html

viele grüße
jerry42
danke für deine antwort...

das habe ich mittlerweile auch schon gefunden, mein problem ist leider nur, dass ich unbedingt den QModelIndex auch brauche, und den bekomme ich leider mit dem keyPressEvent nicht...

lg

Verfasst: 3. August 2010 11:34
von jerry42
ich weiß nicht, ob das Problem noch besteht, aber du kannst doch zu jedem Zeitpunkt deine View nach dem selectionModel fragen. Sehe das Problem nicht.

Gruß jerry42