Designer Plugin erscheint nicht

Alles rund um die Programmierung mit Qt
Antworten
maidou
Beiträge: 5
Registriert: 3. Mai 2007 09:51

Designer Plugin erscheint nicht

Beitrag 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.
Dateianhänge
Registry-Eintrag
Registry-Eintrag
Reg.JPG (27.83 KiB) 2104 mal betrachtet
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
maidou
Beiträge: 5
Registriert: 3. Mai 2007 09:51

statische Einbindung

Beitrag 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
maidou
Beiträge: 5
Registriert: 3. Mai 2007 09:51

Das Problem entsteht beim Loader

Beitrag von maidou »

QLibraryPrivate::resolve_sys(const char* symbol)
hier bekommt er die Adresse 0.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
maidou
Beiträge: 5
Registriert: 3. Mai 2007 09:51

Widget erscheint nur das erste mal

Beitrag 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.
Dateianhänge
2007-05-04_082045.jpg
2007-05-04_082045.jpg (54.03 KiB) 2074 mal betrachtet
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
maidou
Beiträge: 5
Registriert: 3. Mai 2007 09:51

geschafft !!!

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