QSqlTableModel mit QTableView speichern?

Alles rund um die Programmierung mit Qt
Antworten
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

QSqlTableModel mit QTableView speichern?

Beitrag 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
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: QSqlTableModel mit QTableView speichern?

Beitrag 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
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Re: QSqlTableModel mit QTableView speichern?

Beitrag 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
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Beitrag 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?
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag 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
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag von jerry42 »

Hallo,

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

Gruß
jerry42
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag 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
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag 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
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag 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
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag 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
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag 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
Antworten