Widget in eine vom Designer generierte Klasse einbinden

Alles rund um die Programmierung mit Qt
Antworten
Nick
Beiträge: 7
Registriert: 21. November 2007 23:02

Widget in eine vom Designer generierte Klasse einbinden

Beitrag von Nick »

Guten Morgen allerseits,

wahrscheinlich eine Anfängerfrage: Wie kann ich ein eigenes Widget in eine vom Designer generierte Klasse einbinden.

Bisher habe ich meine Anpassungen für die generierten Klassen immer in eine Klasse geschrieben die von der generierten Klasse erbt. Dort müsste man doch auch ein eigenes Widget einbinden können oder?

Bin für jeden Tip dankbar :)

Gruß Nick
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Entweder machst du ein "echtes" Designer-Plugin aus deinem Widget:
http://doc.trolltech.com/4.3/designer-c ... dgets.html
Danach kannst du dein Widget in jedem deiner Projekte Verwenden..

Oder du hast was einmaliges (spezielles Widget fuer dein Projekt XY) und nimmst es manuell
in den Designer (Promote To.. Basisklasse, Klassenname, Header..)
http://doc.trolltech.com/4.3/designer-u ... om-widgets
Nick
Beiträge: 7
Registriert: 21. November 2007 23:02

Beitrag von Nick »

Vielen Dank! Das mit dem "Promoten" sieht schon mal sehr gut aus. Werde ich gleich ausprobieren.

Gibt es auch noch eine Möglichkeit das nachträglich zu machen, quasi ohne den Designer zu benutzen?

Gruß Nick
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Naja, wenn du von der Ui-Klasse erbst (http://doc.trolltech.com/4.3/designer-u ... e-approach)
spricht ja nichts dagegen, im Konstruktor noch weitere Widgets zu erstellen und dem Layout (oder sonst einem Container) hinzu zu fuegen.. z.B. layout()->addWidget(new MyWidgetClass(this))
Nick
Beiträge: 7
Registriert: 21. November 2007 23:02

Beitrag von Nick »

Ja ich denke ich werde es wohl so machen. Das Widget schon im Designer zu sehen würde mir sowieso wenig bringen weil in meinem Fall das Aussehen bzw. die Größe erst zur Laufzeit festgelegt werden kann.

Vielen Dank für die nützlichen Tipps!

Gruß Nick
Antworten