Ich speichere Dienstnamen außerhalb der Tabelle services
. So services
Tabelle enthält alles, was ich in einem TableView brauche, außer dass ich Service-Namen in service_types
in der Ansicht gespeichert anzeigen möchte.
Soweit ich verstanden habe, gibt es keine Möglichkeit, QSqlTableModel
arbeiten mit sogar einer einfachsten Join.Eine einfache Möglichkeit, IDs für Zeichenfolgen in einer Ansicht zu ersetzen
Ich weiß, ich sollte QAbstractTableModel
übernehmen, aber ich habe keine Ahnung, wie man dort etwas implementiert. Ein Zauberer in Qt Creator hat ein .h/.cpp
Paar für mich gemacht, aber ich kann keine Beispiele im Internet finden, um eine Idee zu bekommen, was ich implementieren soll.
Also frage ich, ob es eine clevere Möglichkeit gibt, alle Service-Typen-Strings (es gibt nur 200) in eine QMap im Voraus zu bekommen, und tableView sie nur anstelle von IDs anzeigen.
vielleicht kann ich QSqlTableModel selbst erben, und nur machen 'data()' Methode anders verhalten (für 1 Spalte)? – mekkanizer
Qt Dokumentation ist ziemlich vollständig. Unter http://doc.qt.io/qt-5/model-viewing-programming.html#model-classes finden Sie eine Erklärung, wie es funktioniert und http://doc.qt.io/qt-5/examples- itemviews.html für Beispiele. –
Sie müssen Ihr Modell unterklassifizieren und in der Funktion 'data()' die ursprünglichen Daten durch eins ersetzen, das Sie von einer anderen Tabelle abfragen. – vahancho