tableView -> Doppelclick auf Zeile

Alles rund um die Programmierung mit Qt
Antworten
sowbug
Beiträge: 6
Registriert: 1. März 2009 18:06

tableView -> Doppelclick auf Zeile

Beitrag von sowbug »

Hallo!

Ich lasse mir Teile aus einer SQL-Datenbank eine Tabelle füllen. Diese Tabelle liegt in einem TabView.
Der Plan ist, dass bei einem Doppelclick auf irgendeine der erzeugten Zeilen in der Tabelle der Tab gewechselt wird und dort der gesamte Datensatz noch einmal aufgerufen wird.

Nun stellt sich mir die Frage wie ich das ganze anstelle.
Ich habe irgendwann mal gelesen, dass man über einen Connect nicht direkt Daten mitgeben kann. Sonst wäre meine idee gewesen:

connect(tableView, SIGNAL(doubleClicked(), this, SLOT(selectData(SQL-ID)));

Das geht wohl nicht, oder?

Und kann ich denn überhaupt die komplette Tabelle verlinken oder muss ich bei der Schleife für jede Zeile einen eigenen Connect einbauen?

Grüße
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Eine QTabView gibt es in der Doku nicht...
Ansonsten wird heißt das Signal:

Code: Alles auswählen

void doubleClicked(const QModelIndex &index)
Das von dir genannte Signal gibt es überhaupt nicht.
sowbug
Beiträge: 6
Registriert: 1. März 2009 18:06

Beitrag von sowbug »

upsala hat geschrieben:Eine QTabView gibt es in der Doku nicht...
Joa, TabWidget heißt das Ding, sry. Das Blättern darin ist nicht das Problem.

Ich schau mir deinen Tip mal an.

Danke erstmal!
sowbug
Beiträge: 6
Registriert: 1. März 2009 18:06

Beitrag von sowbug »

Hallo.

Ok, ich habe nun wunderbar den Index des angeklickten Feldes in die neue Funktion übertragen.

Ich frage mich nur gerade wie ich aus dem tableView die Daten aus dem angeklickten Feld auslesen kann. Ich stelle mich wohl zu blöd an das richtige in der Doku zu finden.

Jemand einen Tipp?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

QVariant QModelIndex::data ( int role = Qt::DisplayRole ) const
vllt.?
sowbug
Beiträge: 6
Registriert: 1. März 2009 18:06

Beitrag von sowbug »

franzf hat geschrieben:QVariant QModelIndex::data ( int role = Qt::DisplayRole ) const
Ich hab ehrlich gesagt keinen Plan wie ich damit umgehen soll...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

bleiben dir 2 Möglichkeiten..... Doku zu QVariant (oder allgemein...) oder verzweifeln...
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

3. Möglichkeit:
Du verwendest das:
QVariant QAbstractItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole ) const

Aber jetzt mal ehrlich:
Was kann man da nicht verstehen? Sollte sich eigentlich durch wenige Klicks in der Doku von selbst erklären.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Ich hab ehrlich gesagt keinen Plan wie ich damit umgehen soll...
Die Jungs hier gehen davon aus, dass du mit einem Model (QSqlQueryModel, QStandardItemModel oder ein eigenes...) und einer View (QTableView) arbeitest. Ich bin mir da nicht so sicher, weil du ja auch "TabView" geschrieben hast, aber ein "TabWidget" meintest...

Der Punkt ist der: Wenn du mit einer Model/View-Implementierung arbeitest, kannst du die Daten ja vom gleichen Model beziehen, welches die TabelView anzeigt... _ein_ Model, zwei "Views" (eine View für die ganze Tabelle, eine für nur eine Zeile).
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

solarix hat geschrieben:Die Jungs hier gehen davon aus, dass du mit einem Model (QSqlQueryModel, QStandardItemModel oder ein eigenes...) und einer View (QTableView) arbeitest. Ich bin mir da nicht so sicher, weil du ja auch "TabView" geschrieben hast, aber ein "TabWidget" meintest...
Ich bin mir sicher, dass er mit nem Model arbeitet, sonst würde er nicht schreiben
Ok, ich habe nun wunderbar den Index des angeklickten Feldes in die neue Funktion übertragen.
Außer er meint jetzt mit "index" row und col... :D
Antworten