Hi Marco,
@Throndar said in Dateieigenschaften einer Datei einlesen (QT Quick):
Würde ich eine C++ Klasse anlegen in der alle Klassen nacheinander aufgeführt sind (hab ich in mehreren Beispielen bisher so gesehen das da einfach hintereinander die Klassen geschrieben wurden) oder würde ich für jede Klasse eine eigene C++ Klasse erstellen? Ich könnte mir vorstellen das das zwar viele Dateien ergibt aber am Ende übersichtlicher wird.
In dem Beispiel von deinem Link ist ja Klasse "animal" und QAbstractModel "AnimalModel" in der gleichen Datei definiert weshalb ich mich gefragt habe wie es richtig gemacht wird da ich versuche es mir möglichst richtig beizubringen und schlechten Stil zu vermeiden.
Ich würde sagen das hängt einfach nur sehr stark von deinem Programmierstil ab, bzw. dran wie du es gelernt hast.
In dem Beispiel ist Animal eigentlich nur ein struct, das als Klasse ausgeschrieben ist. D.h sie ist sehr einfach gestrickt und dient als Container für 2 Werte.
Prinzipiell, kannst du alles in eine Klasse bzw sogar alles in ein header file schreiben. Das geht, ganz gut, wenn die Zusatzklassen nur wenige Zeilen betragen und du nicht vor hast diese wo anders noch einmal neu zu verwenden.
Für alles andere würde ich empfehlen diese in ihre eigenen Dateien auszulagern, der Übersichthalber.
Und eine (bzw. eher zwei) letzte Frage, wenn ich eine Klasse für ein QObject meinem Projekt hinzufüge, gehe ich ja über Hinzufügen -> C++ und wähle dann "Klasse" -> Basisklasse "QObject" und binde das QQuickItem (Qt Quick 2) Item ein. Gebe einen Klassennamen ein und schließe das ganze ab. Da es leider keine Beispieldateien im Artikel gibt frage ich mich ob beim QAbstractItemModel Subclass wo keine entsprechende Auswahl vorhanden ist, dass dann über "benutzerdefiniert" erfolgt und ob da da noch weitere Parameter setzen müsste?
QtCreater bietet diese Templates an, um dir die Arbeit etwas zu erleichtern. Alles was gemacht wird, sind Declaration Guards und sehr eine basic class definition - name, Klassen{}, constructor etc . Es hält dich nichts davon ab, nur eine standart cpp klasse zu erstellen und alles andere per Hand nachzutragen. Das ist der Weg den ich normalerweise gehe, dann weis ich wenigstens, genau, warum was in meiner Klasse steht :)
Und als allerletztes war mir bei QT Creator aufgefallen wenn ich eine Klasse erstelle mir unter Modellierung ein "Qmodel" angeboten wird, da dort aber ein Drag & Drop Feld mit Klassen / Komponenten / usw erzeugt wird wollte ich wissen ob das rein für Dokumentationszwecke gedacht ist oder ob dort ggfls. Klassen bezeichnet`/ angelegt werden müssen?
Sorry, damit habe ich keine Erfahrung, wie gesagt ich lasse normalerweise QtCreator nur eine basic cpp Klasse erstellen und erweitere diese dann je nach bedarf.
Der Post ist jetzt leider vieel länger geworden als ursprünglich geplant Ich hoffe die Fragen sind für einen Profi nicht allzu blöd und bedanke mich im Voraus für die Mühe sich hier mit mir gegeben wird.
:-) Ein Profi bin ich nicht wirklich, da haben andere hier deutlich mehr Erfahrung, aber ich helfe gerne, wenn ich kann.
Grüße