[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 1014: Undefined array key 3 [phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 1014: Undefined array key 3 Modell erstellen (MVC) - qtforum.de
kann mir jemand vorallem die zweite Zeile bitte erklären?
Das hat weder was mit Qt noch mit MVC zu tun, das ist einfach eine Basisinitialisierung. Du willst ja dass deine Klasse (StringListModel) beim initialisieren auch die Sachen aus dem Konstruktor der Basisklasse macht - dafür ist das erste, direkt hinter dem ":". Das zweite schimpft sich Elementinitialisierung und füttert den Member (stringList) deiner Klasse mit dem Wert, der dem Konstruktor übergeben wurde (strings).
Ich denke es lohnt sich für dich da mal ein bisschen C++-Literatur zu wälzen - stöber einfach mal durch die Links hier.
QAbstractListModel ist ne abstrakte (weil unvollstaendige) Klasse fuer eindimensionale Models. Sie implementiert dir paar funktionen, die bei eindimensionalen Modells quasi standard sind, also eigentlich nur tipparbeit waeren.
QAbstractItemModel waer die Allgemeinere Basis, die auch geeignet waer fuer 2 dimensionale models, und oder eltern (parent) basierte models (Treeview heissen die unter windows) ...
QAbstractListModel teil der QObjectHirarchie ist, und fuer einige member die es erzeugt ein QOBject parent braucht, sollte man den Konstruktor von QAbstractListModel auch mit dem parent aufrufen ... das machst du mit
"QAbstractListModel(parent)". Damit gibst du eigentlich das parent von deinem construktor nur an das Object weiter von dem du ableitest.
das gebilde direkt nach der konstruktor def zeile vorm codeblock fuer den konstruktor (also die 2. zeile da) nennt man initialisierungsliste ... constante member und referenzen sowie basisklassen kann man nur da initielisieren !
stringList(strings) initialisiert deine referenz auf ne Stringliste, also die membervariable, mit einer Stringliste, ueber den parameter im konstruktor von aussen ....
sprich du legst ne stringliste an ... uebergibst die deiner Modelimpl im Konstruktor, und die arbeitet von nun ab auf der uebergebenen liste, sie hat also keine eigene.
Sprich du musst kannst die stringliste aussen lustig bearbeiten, wenn fertig bist, sagst dem modell das es mal neu gezeichnet werden sollte, und voiala, es aktualisiert die daten auf basis der stringliste ....
Das sind aber uebliche c++ techniken, hat mit qt weniger zu tun.
Bevor du dich mit der QT rumaergerst, sollte aber C++ basiswissen vorhanden sein, sonst hast ned viel freude ....
Danke euch für die schnellen und ausführlichen Antworten! Ich habs leider befürchtet dass es weniger mit Qt/MVC zu tun hat, vielmehr mit C++, und da bin ich auch nicht so weit fortgeschritten mit meinen Kenntnissen...! naja ich schau mir nochmal die Doc über Klassen in C++ an!