Guten Tag,
ich möchte Daten aus einer Datenbank in einer QTableView anzeigen lassen. Dies funktioniert soweit auch.
Nun möchte ich die QTableView insofern erweitern, dass man wenn man auf eine Zeile der Tabelle doppelklickt eine Funktion augerufen wird.
Ich wollte zu diesem Zweck eine neue Klasse von QTableView erben lassen.
Mein Problem: Wie greife ich auf das Member verticalHeader von QTableview in meiner abgeleiteten Klasse zu?
Im Sourcecode von Qt, wird da ein merkwürdiges Makro verwendet um einen Zeiger auf die private-Member zu erhalten.
Ich vermute mein Ansatz ist auch grundlegend falsch, wie geht man normalerweise vor
wenn man in Qt eine Klasse um bestimmte Funktionalität erweitern will?
Ich hoffe mein Problem wurde verständlich, falls nicht fragt bitte nach.
Vielen Dank
Mario
[GELÖST] Von QTableView erben
-
MarioSandler
- Beiträge: 2
- Registriert: 12. Mai 2010 18:11
[GELÖST] Von QTableView erben
Zuletzt geändert von MarioSandler am 17. Mai 2010 14:18, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ableiten ist hier definitiv nicht nötig. Siehe http://doc.trolltech.com/4.6/qabstracti ... bleClicked
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
>> Siehe http://doc.trolltech.com/4.6/qabstracti ... bleClicked
Damit kannst Du deine Doubleklicks direkt in der Tabelle abfangen !
>> Wie greife ich auf das Member verticalHeader von QTableview in meiner abgeleiteten Klasse zu
Wenn du auf die Header clickst, musst natuerlich das Signal auch am Header abfangen. Egal ob du Ableitest oder nicht, die AbstractItemViews bekommen nen "standard" Header verpasst, wenn du den ned expliziet auswechselst.
QHeaderView * pMyHeader = pAbstractTableView->verticalHeader ();
Da kommst auf den aktuellen vertikalen Header.
QHeaderView hat auch nen tolles Signal:
void QHeaderView::sectionDoubleClicked ( int logicalIndex ); !
Womit Christians Aussage erhalten bleibt! Um die clicks abzufangen, brauchst nicht ableiten, sondern "nur" clever connecten !
Anmerkung:
Um eigene Funktionalitaet ins MVC Konzept zu bringen, eignet sich fast immer der Controller am meisten ! Komischer Weisse entspricht das Model bei der QT Sicht mehr dem klassichen Controller, und sonderformen in der QT treten in Form fertiger Model/Controller-Kombinationen ala StringListModel und Consorten auf. Die Bezeichnung iss da bissi irrefuehrend !
Also:
Model - is meist vorgegeben
Controller(QT Model) anpassen (ableiten) fuer Logische Funktionalitaet, fuer "besonderes Verhalten", fuer die Gliederung etc.
View ableiten/implementieren, wenn die Darstellung der mitgelieferten Views (List, table, Tree, Combobox ... ) nicht ausreicht, bzw du was komplett anderes willst (nen diagramm ... etc)
Ciao ...
Ciao ...
Damit kannst Du deine Doubleklicks direkt in der Tabelle abfangen !
>> Wie greife ich auf das Member verticalHeader von QTableview in meiner abgeleiteten Klasse zu
Wenn du auf die Header clickst, musst natuerlich das Signal auch am Header abfangen. Egal ob du Ableitest oder nicht, die AbstractItemViews bekommen nen "standard" Header verpasst, wenn du den ned expliziet auswechselst.
QHeaderView * pMyHeader = pAbstractTableView->verticalHeader ();
Da kommst auf den aktuellen vertikalen Header.
QHeaderView hat auch nen tolles Signal:
void QHeaderView::sectionDoubleClicked ( int logicalIndex ); !
Womit Christians Aussage erhalten bleibt! Um die clicks abzufangen, brauchst nicht ableiten, sondern "nur" clever connecten !
Anmerkung:
Um eigene Funktionalitaet ins MVC Konzept zu bringen, eignet sich fast immer der Controller am meisten ! Komischer Weisse entspricht das Model bei der QT Sicht mehr dem klassichen Controller, und sonderformen in der QT treten in Form fertiger Model/Controller-Kombinationen ala StringListModel und Consorten auf. Die Bezeichnung iss da bissi irrefuehrend !
Also:
Model - is meist vorgegeben
Controller(QT Model) anpassen (ableiten) fuer Logische Funktionalitaet, fuer "besonderes Verhalten", fuer die Gliederung etc.
View ableiten/implementieren, wenn die Darstellung der mitgelieferten Views (List, table, Tree, Combobox ... ) nicht ausreicht, bzw du was komplett anderes willst (nen diagramm ... etc)
Ciao ...
Ciao ...
-
MarioSandler
- Beiträge: 2
- Registriert: 12. Mai 2010 18:11