Designer Plugins zu Projekt hinzufügen
Designer Plugins zu Projekt hinzufügen
Hi,
ich habe mir ein QLineEdit als designer plugin erstellt, habe es kompiliert und für den creator verfügbar gemacht.
Jetzt möchte ich dieses neue widget in meinem projekt verwenden, und ziehe es auf meine form. Wenn ich es jetzt kompilieren möchte bekomme ich einen fehler wegen "[...] undefined reference [...]".
Muss ich sonst noch irgendwas einbinden oder dgl.?
Danke!
ich habe mir ein QLineEdit als designer plugin erstellt, habe es kompiliert und für den creator verfügbar gemacht.
Jetzt möchte ich dieses neue widget in meinem projekt verwenden, und ziehe es auf meine form. Wenn ich es jetzt kompilieren möchte bekomme ich einen fehler wegen "[...] undefined reference [...]".
Muss ich sonst noch irgendwas einbinden oder dgl.?
Danke!
-
SamFredericks
- Beiträge: 14
- Registriert: 19. April 2011 12:44
Wie hast du QLineEdit als DesignerPlugin erstellt? Hast du dir eine eigene Klasse geschrieben?
Bsp.
Bsp.
Code: Alles auswählen
class MyLineEdit:public QLineEditJa hab ich. Eigentlich mit dem wizzard unter neu --> Benutzerdefiniertes Widget für den Qt Designer!
Der erstellt dann die klasse, die hab ich angepasst, dann kompiliert und in das verzeichnis für designer plugins kopiert.
Das widget wird angezeigt, ich kanns auf die form in einem neuen projekt ziehen, die properties ändern usw., nur kompilieren geht dann wegen o.g. fehler nicht.
Der erstellt dann die klasse, die hab ich angepasst, dann kompiliert und in das verzeichnis für designer plugins kopiert.
Das widget wird angezeigt, ich kanns auf die form in einem neuen projekt ziehen, die properties ändern usw., nur kompilieren geht dann wegen o.g. fehler nicht.
-
SamFredericks
- Beiträge: 14
- Registriert: 19. April 2011 12:44
Wenn du dir die *.ui-Datei ansiehst, wird dein Element irgendwo erzeugt:
Dein Programm/Projekt kennt die Klasse nicht. So würde ich es jedenfalls interpretieren. Im *.pro-File deines Progs, wo du die *.ui-Datei verwendest, einfach die
mywidget.cpp
mywidget.h
hinzufügen.
Code: Alles auswählen
<widget class="MyWidget" name="mywidget" native="true">mywidget.cpp
mywidget.h
hinzufügen.
Das ist Gebastel.. Eine saubere Lösung erfordert, dass man daraus drei Projekte macht: eine Library mit den Widgets "libmywidgets.so", eine Plugin-Library, welche die Designer-Interfaces (QDesignerCustomWidgetInterface) beinhaltet (z.B. "libmydesignerplugins.so", gelinkt gegen "libmywidgets.so") sowie die Applikation..SamFredericks hat geschrieben:.. Im *.pro-File deines Progs, wo du die *.ui-Datei verwendest, einfach die
mywidget.cpp
mywidget.h
hinzufügen.
Code: Alles auswählen
Designer
|
\/
Applikation libmydesignerplugins.so
\ /
\ /
\ /
\/ \/
libmywidgets.so
Danke für die antworten.
@solarix
Ich hab das plugin auf (leider unter windows) eine mywidget.dll sowie myplugin.dll aufgeteilt.
Wenn ich jetzt das neue widget im designer auf meine applikation ziehe, wird dann mywidget.dll automatisch ins pro file eingefügt?
Oder wie funktioniert das dann?
Ich kanns leider momentan nicht testen, ist eher eine theoretische frage!
Danke!
@solarix
Ich hab das plugin auf (leider unter windows) eine mywidget.dll sowie myplugin.dll aufgeteilt.
Wenn ich jetzt das neue widget im designer auf meine applikation ziehe, wird dann mywidget.dll automatisch ins pro file eingefügt?
Oder wie funktioniert das dann?
Ich kanns leider momentan nicht testen, ist eher eine theoretische frage!
Danke!
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
http://doc.trolltech.com/4.7/designer-c ... dgets.html - da steht alles... und da der Qt-designer nichts von einem pro-File weiß kann er auch nichts ändern. Das musst Du schon einmal von Hand eintragen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung