Seite 1 von 1

[Qt4] Plugins / Modulare Programmierung

Verfasst: 5. Juni 2006 19:20
von GwarDrazul
Hallo zusammen,

Ich suche Anregungen zu einer mir aktuell vorliegenden Problemstellung (die Forenbeiträge diesbezüglich habe ich schon durchforstet).

Einige Rahmenbedingungen der Problemstellung:
Entwickelt wird unter Linux (g++ Kompiler) mit Qt4. Die Anwendung soll letzten Endes aber plattformunabhängig sein.

Die Aufgabe:
Eine Anwendung soll dynamisch Module laden können. Diese Module implementieren eine Funktionalität und können eigene Fenster (Widgets) zur Visualisierung mitbringen (diese würden hauptsächlich der Parametrisierung der Funktionalität dienen). Tun sie dies nicht, ist eine Standardvisualisierung darzustellen.

Die Idee:
Das Modul wird mit dem Qt - Pluginsystem realisiert.

Das Problem:
Das Modul-Interface hätte im aktuellen Stand einige Template-Funktionen (siehe Design Pattern nach Gamma et al) , mehrere abstrakte Methoden (welche quasi zum "Füllen" der Template-Funktionen implementiert werden müssen) und einige virtuelle Methoden (hauptsächlich für GUI-Sachen). Das Problem dabei ist, dass ich die virtuellen Funktionen der Schnittstelle im Header implementieren muss, damit der Qt - PluginLoader die kompilierten Plugins auch als solche erkennt (eine Implementierung im C++ File ist nicht möglich. Der PluginLoader behauptet dann, es wäre kein Plugin). Ich empfinde das als unsauber. Die Funktionen sollen aber virtuell sein, damit Kindklassen sie überschreiben können.

Die Fragen:
1.) Hatte jemand bereits ein ähnliches Problem und kann mir sagen, warum ich die virtuellen Methoden im Header implementieren muss um ein funktionierendes Plugin zu bekommen? Oder gibt es evtl.
2.) bereits existierende Ansätze für ein solch modulares GUI Konzept?

Vielen Dank und beste Grüße,
Eric

Verfasst: 5. Juni 2006 20:39
von patrik08
Ich habe sicher 3-4 tagen verloren mit der plug-in implementierung bei mac / window ... alles fing an wo ich das fertige gui widged plug-in gesehen habe...
http://qtnode.net/wiki/Custom_widgets sogar berichte ueber plug-in integration .. bei http://doc.trolltech.com/qq/ habe ich gelesen und nochmals gelesehen.... und es ging nur mit einem os und die andere nicht oder viceversa...

3-4 tage nur um das gute stuck zu begreifen und dass es auf die 3 haupt os lauft...

Doch heute habe ich meine meinung stark geandert ... wenn ich einen gutes stuck widged habe kalender oder smtp gui ecc... Nehme ich die file ... schmeisse alles in einem ordner ... und mache eine statische libs daraus... so dass ich nur noch die libs implementieren muss und dass header.h file.... doch dann bin ich uberzeugt dass es auf alle 3 haupt os lauft.. mit locale wenn sein muss..

Kann sein dass ich zu wenig c++ erfahrung habe (3 Mt.) jedoch schreibe ich php + extension als es noch version 2 gab mit phtml (1989) und dazu habe ich noch mein eigenes projekt bei sf.net gemacht mit nur 2 monaten c++ & qt erfahrung http://sourceforge.net/projects/qtexcel-xslt/ mit qt4 ...

Aber.... eben .... es muss jeder seine eigene erfahrung aufbauen und daraus lernen....

Verfasst: 6. Juni 2006 07:29
von macman
patrik08 hat geschrieben:jedoch schreibe ich php + extension als es noch version 2 gab mit phtml (1989)
1989 gab es noch nicht mal WWW und Du willst schon mit PHP2 entwickelt haben, obwohl PHP1 erst 1994 heraus kam? Die Zeiten sind schnell lebig geworden, da vertut man sich schon mal :-)

1989 beschränkte sich das Internet jedenfalls auf Usenet und Mail und man war noch mit 2400er Modems oder sogar mit Akustikkopplern unterwegs. Da wurde noch jedes Byte per Handschlag begrüßt :-)

Verfasst: 6. Juni 2006 10:31
von patrik08
:D Datum .... muss man behalten koennen..... ich habe in meine code ecke nachgeschaut.... PHP/FI 2.0 ... benennte sich dass ....

Damals haben mich alle kollegen ausgespottet :x ... Brauche doch ASP unsw... dass ist die zukunft ecc...

Heute koennen sie ohne php4-5.... nicht leben und existieren :lol:

Verfasst: 6. Juni 2006 10:48
von macman
patrik08 hat geschrieben:PHP/FI 2.0 ... benennte sich dass ....
Das war 1995, immerhin auch schon 11 Jahre her.
patrik08 hat geschrieben:Brauche doch ASP unsw... dass ist die zukunft ecc...
Microsoft kann gar nicht die Zukunft sein, wenn man sieht wie oft die die Entwicklung verschlafen haben.

Verfasst: 6. Juni 2006 11:15
von patrik08
macman hat geschrieben: Microsoft kann gar nicht die Zukunft sein, wenn man sieht wie oft die die Entwicklung verschlafen haben.
Da hast du vollkommen recht ... die neue window vista beta .... ist grafisch angeordnet hargenau wie der neue Tiger von Mac.... nur sind die dock icon oben / norden .... die einzige stelle die Mac nicht erlaubt.... .... vielleicht wollen die demonstrieren das vista mehr kann... :D

Verfasst: 8. Juni 2006 17:42
von GwarDrazul
patrik08 hat geschrieben:Ich habe sicher 3-4 tagen verloren mit der plug-in implementierung bei mac / window ... alles fing an wo ich das fertige gui widged plug-in gesehen habe...
http://qtnode.net/wiki/Custom_widgets sogar berichte ueber plug-in integration .. bei http://doc.trolltech.com/qq/ habe ich gelesen und nochmals gelesehen.... und es ging nur mit einem os und die andere nicht oder viceversa...
Besten Dank für die Antwort und die Links. Leider werde ich um dynamische Bibliotheken nicht herum kommen.

Viele Grüße,
Eric