Seite 1 von 1
Designer Plugins zu Projekt hinzufügen
Verfasst: 20. April 2011 15:32
von Mani99
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!
Verfasst: 20. April 2011 16:16
von SamFredericks
Wie hast du QLineEdit als DesignerPlugin erstellt? Hast du dir eine eigene Klasse geschrieben?
Bsp.
Verfasst: 20. April 2011 16:44
von Mani99
Ja 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.
Verfasst: 20. April 2011 17:17
von SamFredericks
Wenn du dir die *.ui-Datei ansiehst, wird dein Element irgendwo erzeugt:
Code: Alles auswählen
<widget class="MyWidget" name="mywidget" native="true">
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.
Verfasst: 20. April 2011 22:45
von solarix
SamFredericks hat geschrieben:.. Im *.pro-File deines Progs, wo du die *.ui-Datei verwendest, einfach die
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..
Code: Alles auswählen
Designer
|
\/
Applikation libmydesignerplugins.so
\ /
\ /
\ /
\/ \/
libmywidgets.so
hth..
Verfasst: 21. April 2011 08:55
von Mani99
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!
Verfasst: 21. April 2011 08:58
von Christian81
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.
Verfasst: 21. April 2011 09:14
von Mani99
@Christian
Danke, jetzt hab ich verstanden wie das funktioniert!