PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [QT & KDevelop] UI-File nachträglich ändern



AceTheFace
07-11-2004, 00:43
Hallo,

habe eines der Tutorials von der KDE-Seite durch und möchte nun ein bisschen mit KDE/QT rumspielen.
Ich erstelle also eine Oberfläche mit dem qt-designer. Leite aus der UI-File eine Widget-Klasse ab. Soweit so gut, das klappt auch alles.
Was ich jetzt allerdings nicht verstehe, wie ich nachträgliche Änderungen an der UI-Datei (Änderungen mit Designer durchgeführt) in die bereits abgeleitete Klasse bekomme, ohne dabei meine schon fertige Implementierung des Event-Handlings zu verlieren.

Hier noch mal in Kürze:

- UI-File mit Designer erstellt
- in KDevelop aus UI-File eine widget-klasse abgeleitet
- event-handling dieser Klasse implementiert
- nachträglich was an der UI-File verändert
- wie gelangen diese Änderungen in bereits fertige Klasse ohne bisherige Implementierung zu verlieren?

Danke,
Gruß,

Ace

cybercrow
07-11-2004, 01:10
ich kenne mich mit kdevelop nicht aus, aber mal allgemein.

Die UI-Files sind vollkommen unabhängig von deinem Code (oder sollten es zumindest sein). Du kannst also die UI-Datei jederzeit ändern wie du willst.
Wenn du natürlich ein Element raus nimmst oder umbenennst, auf das du im Code zugreifst, dann mußt du den Code ändern. Fügst du ein Element hinzu (z.B. ein weiteren Button) Mußt du halt den Programmcode in deiner Klasse um diesen Button erweitern.

AceTheFace
07-11-2004, 10:09
Ja gut, dann wäre ja aber die ganze Erleichterung weg.
Wieso sollte mir kdevelop beim ersten Einbinden der *.ui-File den Code komplett selbst generieren und bei einer nachträglichen Änderung der ui-File müsste ich diese Änderungen von Hand dazucoden. Das muss doch auch beim zweiten Mal automatisch funktionieren....hoffe ich jedenfalls :)

Gruß,

Ace

AceTheFace
07-11-2004, 11:02
Habe gerade mit einem KDE-Entwickler gesprochen und der meinte, dass man in der abgeleiteten Klasse des ui-files gar keinen Code schreibt, sondern davon wieder ne subklasse macht, in der man dann das event-handling und so unterbringt. Hm...mal schauen, falls dazu noch jemand genaueres sagen könnte, immer her damit :)

Gruß,

Ace

HangLoose
07-11-2004, 13:01
moin Ace

anda_skoa hat das in seinem tutorial "QT Grundlagen"(hier im tutorial bereich) gut beschrieben. allerdings ist das momentan nicht erreichbar, musst netzmeister mal ne mail schicken, ob die noch vorhanden sind.


Gruß HL

cybercrow
07-11-2004, 13:21
Habe gerade mit einem KDE-Entwickler gesprochen und der meinte, dass man in der abgeleiteten Klasse des ui-files gar keinen Code schreibt, sondern davon wieder ne subklasse macht, in der man dann das event-handling und so unterbringt. Hm...mal schauen, falls dazu noch jemand genaueres sagen könnte, immer her damit :)


Ach so, du schreibts direkt in den code, der von der UI Datei erzeugt wurde.
Ich habe gedacht das du mit "Leite aus der UI-File eine Widget-Klasse ab." genau das meinst was dir der KDE-Entwickler gesagt hat.
Wenn du direkt in den "UI-Code" schreibst ist das natürlich nicht so gut.

Mal ein kleines Beipspiel:
du hast eine hallobase.ui.
Dann erstellst du eine hallo.h:


#include "hallobase.h"

class Hallo : public HalloBase
{
...
}


und mit der hallo.h und hallo.cpp arbeitest du dann und den code der aus der ui Datei beim kompilieren erstellt wird fasst du selber garnicht an.

peschmae
07-11-2004, 17:40
anda_skoa hat das in seinem tutorial "QT Grundlagen"(hier im tutorial bereich) gut beschrieben. allerdings ist das momentan nicht erreichbar, musst netzmeister mal ne mail schicken, ob die noch vorhanden sind.


Das ist schon noch vorhanden, nur im "Archiv". D.h. du musst die Nummer rausbrösmeln und dann in der Form http://www.mrunix.de/forums/archive/index.php/t-NUMMER.html verwenden. Also http://www.mrunix.de/forums/archive/index.php/t-31182.html
(Siehe auch da (http://www.mrunix.de/forums/showthread.php?t=35413))

MfG Peschmä

HangLoose
07-11-2004, 17:57
ah, thx :). gleich mal bookmarken.



Gruß HL

anda_skoa
07-11-2004, 18:05
Ach so, du schreibts direkt in den code, der von der UI Datei erzeugt wurde.


Wahrscheinlich den Hinweis


** WARNING! All changes made in this file will be lost!

am Anfang der Datei für einen Scherzgehalten :)

Ciao,
_