Klassendesign

Alles rund um die Programmierung mit Qt
Antworten
Raphael
Beiträge: 1
Registriert: 24. August 2005 12:09
Wohnort: Marburg

Klassendesign

Beitrag von Raphael »

Hallo,
ich bin neu in der GUI - Programmierung und habe eine prinzipielle Frage:
Situation: ich habe eine Datenstruktur, die einerseits zeitaufwändige Methoden und andererseits eine grafische Repräsentation mitbringt.
Jetzt möchte ich diese grafische Repräsentation in einer GUI-basierten Applikation darstellen und die Datenstruktur per Mausklick manipulierbar zu machen.
Frage/Ziel: ich will also die Berechnungen in eingenen Threads unterbringen und dann das ganze in einem QGL-Widget darstellen. Unklar ist mir aber, wie ich das ganze jetz in Klassen aufteilen kann. Muss meine Datenstruktur von Thread erben? Aber wie bekomme ich dann die nötigen Punkte usw. in meine Displaylists?

Evtl. war das jetzt relativ unverständlich, also ein Beispiel:
ich habe eine Klasse

Code: Alles auswählen

class myDataStruct{
   private:
       int [] irgenwelcheDaten;
   public:
       void manipuliere();
       glVertex3f[] darstellung();
}
die mit manipuliere verändert werden kann und einfach durch einige Punkte dargestellt wird, die man per darstellung() erhält.

Wie bekomme ich das jetzt in eine GUI, die aus einem GL-Widget und einem Button "Manipuliere" besteht, der dann einen Thread aufruft, in dem die Funktion manipuliere ausgeführt wird und dann für das Ergebenis die Funktion Darstellung aufruft und die Punkte im GL-Widget ausgibt.?

Freue mich auch über Teilantworten, nützliche Ressourcen usw.
Grüße,
Raphael
kowi1134
Beiträge: 120
Registriert: 1. Mai 2005 17:48
Wohnort: Arnsberg

Beitrag von kowi1134 »

Hallo!

Das Thema umfasst jetzt schon sehr viele Dinge: GUI, OpenGL und Threads. Aus eigener Erfahrung weiß ich, dass man diese Dinge schrittweise implementieren sollte. D.h. Du erstellst zuerst die GUI, dann ein QGLWidget in dem Du ein paar Dinge zeichnest und dann kümmerst Du Dich um die Threads.
Wenn ich jetzt anfangen würde, zu erzählen, wie ich genau das gleiche Problem bei mir gelöst habe, dann säße ich morgen noch hier. Versteh' mich nicht falsch, ich will Dir helfen, aber bitte arbeite schon mal ein bisschen weiter und frage dann bei jedem Schritt, bei dem Du Hilfe brauchst nach. Dazu kannst Du ja diesen Forenthread weiter benutzen.

Viel Erfolg,
Kowi
Antworten