eigene Slots im ui-File definieren

Verschiedenes zu Qt
Antworten
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

eigene Slots im ui-File definieren

Beitrag von otternase »

Hallo

in meinem Programm lade mittels QUiLoader zur Laufzeit einen Dialog aus einem zur Laufzeit generierten ui-File.
Nun möchte ich gerne eine eigene Funktion in diesem Dialog (einen eigenen Slot) definieren, die, damit auch diese dynamisch generiert werden kann, eben im ui-File stehen müsste und dann erst zur Laufzeit interpretiert würde.

Welche Möglichkeiten gibt es da?

Ciao
otternase
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag von VuuRWerK »

So wie es klingt baust Du die XML-Struktur der *.ui selber zusammen und wenn Du das tust wirst Du doch jetzt keine Probleme damit haben auch noch die Slots mit in die XML-Struktur rein zupacken, oder?

Schau Dir doch einfach ein vom Designer erzeugtes File an und übernehme das Schema auch so, so oder so ähnlich wirst Du es doch auch mit den Widgets gemacht haben.

Gut Schuß
VuuRWerK ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

Beitrag von otternase »

Hallo VuuRWerk

genau richtig, ich baue die selber und soweit ich vordefinierte Signals/Slots nutze, habe ich auch keine Probleme, die kann ich einfach so verbinden

<connection> <sender>...</sender> <signal>...</signal> <receiver>...</receiver> <slot>...</slot> </connection>

Mein Problem ist, das ich eine eigene neue Funktion als Slot haben will, die erst zur Laufzeit generiert wird und daher auch erst zur Laufzeit interpretiert werden kann, ich suche also etwas etwa so
<function void abc(int)>...hier die Funktion in welcher Sprache auch immer...</function>
die ich dann so aufrufen kann: <slot>abc(int)</slot>
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Da die UIs zur Compile-Zeit in Source umgewandelt wird, wird das wohl nicht gehen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag von VuuRWerK »

Codegenerierung und Reflection sind in einem nativen Umfeld wie bei C++ nicht möglich, zumindestens ist mir nix bekannt.

Sowas geht nur wenn der Quellcode von einem Interpreter interpretiert wird, so wie es in Java oder .NET der Fall ist.

Die Slot-Funktion muss also im kompilierten Maschienencode vorhanden sein um damit ein ein Signal zu verbinden.

Gut Schuß
VuuRWerK ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
Antworten