Designer Plugins zu Projekt hinzufügen

Alles rund um die Programmierung mit Qt
Antworten
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Designer Plugins zu Projekt hinzufügen

Beitrag 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!
SamFredericks
Beiträge: 14
Registriert: 19. April 2011 12:44

Beitrag von SamFredericks »

Wie hast du QLineEdit als DesignerPlugin erstellt? Hast du dir eine eigene Klasse geschrieben?

Bsp.

Code: Alles auswählen

class MyLineEdit:public QLineEdit
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag 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.
SamFredericks
Beiträge: 14
Registriert: 19. April 2011 12:44

Beitrag 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.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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..
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

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

'Funktioniert nicht' ist keine Fehlerbeschreibung
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

@Christian

Danke, jetzt hab ich verstanden wie das funktioniert!
Antworten