[Qt4] Plugins / Modulare Programmierung

Alles rund um die Programmierung mit Qt
Antworten
GwarDrazul
Beiträge: 23
Registriert: 5. Juni 2006 18:56

[Qt4] Plugins / Modulare Programmierung

Beitrag 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
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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....
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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 :-)
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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:
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag 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
GwarDrazul
Beiträge: 23
Registriert: 5. Juni 2006 18:56

Beitrag 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
Antworten