Einstieg in Model-View-Konzept
-
Machd as, ich hab erstmal nach einem Beispiel gesucht, wo man Schritt für Schritt alles einbauen kann, was aber net zu komplex wird.
Wenn wir uns zu dem beispiel einig werden, würde ich erstmal den Code schreiben und dann, Stück für Stück die Beschreibungen...
-
Hier ist mein so genannter Senf, wie immer Ich kann auch total falsch sein.
Ich denke, falls Ich die ganzen Prinzipien hier voll verstehe, ist die Architektur (MVC) ist doch nur für Leute interessant die neue Klassen für Qt entwickeln müssen. So, wie wäre es mit Paragraph 4, Pure Virtual Class (abstract class) für die Tabellen? Wir versuchen die Architektur anhand eines normalen Programm zu erklären. Ohne eine neue Klasse einzufügen finde ist das ist sehr kompliziert. Sagen wir einmal so, Ich hatte zwei Abende gebraucht um hier im Thema mitzukommen.
Und, natürlich, ist mein Vorschlag selbstsüchtig :P Ich stellte gerade fest, dass Ich vielleicht eine Neue Klasse entwickeln muss, und somit darf Ich jetzt mich sowieso über die Qt Architektonik kümmern. In der Gaming Industrie ist das ganz normal. Da Ich aber jetzt echt ganz schnell eure Hilfe brauche, kann Ich vielleicht den Paragraph schreiben während Ich den Stoff lernen muss.
-
Hi,
Für MV(D) (Model view delegate, in Qt gibts den Delegate, nicht den Controller :-) )braucht es sinnvollerweise eine neue Klasse, das Model. Man kann auch das QStandardItemModel verwenden, aber das mache ich eher net, und dann ist der lerneffekt für MV(D) auch net sehr groß :-)
eine pure virtual class für Tabellen gibt es: QAbstractTableModel. Das ist die Model klasse, die man für Tabellen nimmt, da sind schon ein paar sachen aus dem QAbstractItemModel implementiert.
Für die Views muss man ja nichts tun, aber die modelle sind ja die Datenanbindung, und das is was zu tun.
-
Taamalus,
wie auch immer: Wenn du dein konkretes Problem auf irgendeiner Seite des "deutschen Wikis":https://developer.qt.nokia.com/groups/qt_german/wiki so darstellen kannst, dass wir es verstehen, werden wir dir bei der Lösung helfen (falls wir helfen können). Denke dabei bitte daran, dass du deine Absichten beschreibst (Am Quelltext kann man sie oft schwer erkennen.) Und vergiss nicht, hier einen Link auf die Wikiseite zu posten, damit wir davon erfahren.Übrigens: Falls du gar keine eigene Klasse hinschreibst, ist das kein Problem. Mit einem ausführlichen Text hilfst du uns vielleicht sogar mehr, dich zu verstehen. Ach ja: und solltest du Probleme mit dem Erzeugen einer neuen Wikiseite haben, lass es uns wissen - auch das ist schnell erledigt. :)
-
Hi,
ich hab mal eine Beispielapplikation für Teil 1 erstellt, ihr könnt euch den "code":https://docs.google.com/uc?id=0B8PL33_OKajLNmE4NjNiMTMtZmZjYS00NDQyLThiZjEtMTU3MDkwZTk2YmZk&export=download&authkey=CIbe3rQK&hl=en gerne mal anschauen und Kommentare abgeben.
!http://lh5.ggpht.com/_m1PNLlZctqY/TS498x_rwQI/AAAAAAAAAD0/llXO_AQtLiE/s800/MVC_Part1_Example_App.png(example app)!
Ich würde dann als nächstes anfangen, den text dazu zu schreiben, wenn nicht jemand anders das machen möchte... :-)
-
:) hier noch mal der "Wiki-Link":https://developer.qt.nokia.com/groups/qt_german/wiki/Stoffsammlung_MVC-Tutorial_Teil1
-
So,
ich hab gerade mal mit der "Übersicht":http://developer.qt.nokia.com/groups/qt_german/wiki/Model_View_Tutorial angefangen. Die Beschreibung dazu folg demnächst.
-
Ich finde das soweit ganz gut.
Wie wäre es mit ein wenig CD Bilder oder Musik Ausschnitte? Halt nur zum Spaß? Qt hat beides zur Verfügung. Wenn Ich da durchblicke ( Ich lerne zur Zeit ) kann Ich eine neue Reihe ( column ) schreiben, oder wenn einer auf den Titel drückt, spring ein Vorschau Bildchen an.
Ich bin halt in Spiele und Kinder, da braucht man Farbe. :D
-
Noch nicht gelesen, leider, aber: ich "hab hier mal eine Navigation":http://developer.qt.nokia.com/groups/qt_german/wiki/Model_View_Tutorial_Teil2 versucht. Geht das so oder ähnlich?
-
Habt ihr euch mal das ModelView tutorial angeschaut? "Model View Tutorial in Qt Documentation":http://doc.qt.nokia.com/4.7/modelview.html. Ich bin den thread durchgegangen, habe aber nicht den link gefunden.