Seite 1 von 1

Designer Plugin erscheint nicht

Verfasst: 3. Mai 2007 10:03
von maidou
Hallo miteinander,

ich habe mir einen eigenen Style entwickelt und diesen als Plugin und dll generiert. Nun habe ich es auch geschafft, im Designer den Style unter "Preview in" zu importieren.
Hernach wollte ich meine eigenen Widgets in den Designer einbauen.
Dieses Plugin funktioniert aber nicht.
In der Registry ist unter
HKEY_CURRENT_USER\Software\trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.false\C:\Programme\QT4_2_3\plugins\designer
bei meinem Plugin folgender Eintrag:
QIndicatorRadioButtonPlugin REG_MULTI_SZ 0 1 unknown 2007-05-....
Warum steht hier bei der Version 0 und nicht 40203?
Kann mir hier vielleicht jemand helfen?
PS: Ich habe für dieses QDesignerCustomWidgetInterface die lib des Styles importiert.

Verfasst: 3. Mai 2007 10:11
von Christian81
Hast du das Plugin auch korrekt exportiert.
Wenn kein Build-Key dortsteht liegt es entweder daran dass es nicht korrekt exportiert wurde oder dass die Library nicht geladen werden konnte weil z.B. eine abhängige DLL nicht vorhanden ist oder (bei msvc2005) die .manifest - Datei fehlte oder ...
Versuche mal die Lib per QLibrary zu laden.
Wie die Lib versucht wird zu laden (und auch die Buildkeys und das Ganze drumherum sieht man am besten im Code -> qpluginloader.cpp und qlibrary.cpp - QLibraryPrivate::isPlugin(), QLibraryPrivate::loadPlugin()). Ggf. einfach mal drübersteppen damit man sieht wo er aussteigt.

statische Einbindung

Verfasst: 3. Mai 2007 10:31
von maidou
Ich habe die HQT_Framework.lib statisch eingebunden.
Da jedoch bei der HQT-Framework schon kein built-key kommt vermute ich den Fehler schon beim Export dieser dll.
Werde das mit dem PluginLoader mal versuchen

Das Problem entsteht beim Loader

Verfasst: 3. Mai 2007 10:53
von maidou
QLibraryPrivate::resolve_sys(const char* symbol)
hier bekommt er die Adresse 0.

Verfasst: 3. Mai 2007 10:57
von Christian81
Also wird Q_EXPORT_PLUGIN2 (oder wie auch immer das heisst) in deinen Sourcen nicht benutzt. Oder sowas in der Art :)

http://doc.trolltech.com/4.2/qtplugin.h ... RT_PLUGIN2

Widget erscheint nur das erste mal

Verfasst: 4. Mai 2007 08:22
von maidou
Hallo,

vielen Dank erstmal für die Hilfe...

mittlerweile bekomme ich es soweit hin, dass das Plugin im Designer das erste mal erscheint.
Sobald der Cache in der Registry geschrieben ist, erscheint es nicht mehr und ich muss diesen wieder von Hand löschen.

Hat jemand eine Idee, an was das liegen könnte?

Was mir auch Spanisch vorkommt ist,
dass ich im Release-Mode übersetze aber trotzdem die "1" (40203 1 ....) für debug-Mode kommt.

Vielen Dank.

Verfasst: 4. Mai 2007 08:36
von Christian81
Dafür habe ich zur Zeit zu wenig Erfahrung mit designer-Plugins, aber ggf. hilft ein kleines Testcase das man sich mal anschauen könnte.

geschafft !!!

Verfasst: 7. Mai 2007 07:18
von maidou
Also das Problem lag am FLAG QT_NO_DEBUG, das nicht gesetzt war. Somit wurde das Plugin immer im debug-mode übersetzt und daher die 1.

Vielen Dank für Eure Unterstützung.

Bis bald...