Hallo Leute,
ich habe ein Widget A, was ich mit show() anzeigen lassen. In A wird über eine Funktion ein Widget B instanziiert. B besitzt ein Button. Jetzt lasse ich über eine weitere Funktion von A den Button von B über ein Layout in A anzeigen, mit addWidget(B->Button). Das geht. Doch wenn ich auf den Button klicke, soll sich die Anwendung schließen (connect(Button, SIGNAL(clicked()), this, SLOT(close()));). Das geht nicht. Warum?
Warum ich das so mache hat folgenden Grund. Ich habe das Widget A, welches mir verschiedene weitere Widgets erzeugt. Diese Widgets haben Buttons TextEdits usw. Doch das Layout für die verschieden Widgets, mit den Buttons, soll über Widget A gesetzt werden. Widget A besitzt also für jedes "SubWidget" ein eigenes Layout. Wie findet ihr das Vorgehen? Das schreit eher nach StackedLayout, aber all die Beispiele, die ich gesehen habe laufen über eine Liste, aus der man einen Eintrag auswählt, und sich dann links oder rechts der Inhalt verändert, jedoch die Liste immer bleibt. Das will ich ja eben nicht.
Danke für die Hilfe
LG TK
connect funktioniert nicht
das ganze klingt ziemlich haesslich... vor allem das "addWidget(B->Button)" .. und haessliche Designs neigen dazu, nicht zu funktionieren
Aber zurueck zum Problem: Du liefest noch etwas wenig Information/Code... offenbar rufst du den connect(...) vom Child (Widget "B") auf. Daher die Fragen:
* Was erwartet du denn? (Soll auch der Parent (Widget A)) geschlossen werden?
* Was bedeutet "Funktioniert nicht"? Erhaelst du irgendwelche Fehlermeldungen in der Konsole?
Aber zurueck zum Problem: Du liefest noch etwas wenig Information/Code... offenbar rufst du den connect(...) vom Child (Widget "B") auf. Daher die Fragen:
* Was erwartet du denn? (Soll auch der Parent (Widget A)) geschlossen werden?
* Was bedeutet "Funktioniert nicht"? Erhaelst du irgendwelche Fehlermeldungen in der Konsole?
Hey,
jaaa, es klingt hässlich? Oh, hm.
Wie würde es dennf hübsch und funktionierend klingen?
Aber, wenn du meinst, dass dieses Konzept eh nichts taugt, würde ich lieber eine andere Strategie verfolgen.
Denke da noch an folgendes. Ich instanziiere einfach aus Widget A die verschiedenen anderen Widgets, z.b. B, und es wird einfach Widget A mit hide() versteckt und wenn ich wieder auf zurück klicke von Widget B, wird dieses gelöscht und Widget A wird wieder angezeit. Das ist besser oder
jaaa, es klingt hässlich? Oh, hm.
Ja.Was erwartet du denn? (Soll auch der Parent (Widget A)) geschlossen werden?
Keine Fehlermeldungen. Der Klick auf den Button bewirkt nichst.Was bedeutet "Funktioniert nicht"? Erhaelst du irgendwelche Fehlermeldungen in der Konsole?
Aber, wenn du meinst, dass dieses Konzept eh nichts taugt, würde ich lieber eine andere Strategie verfolgen.
Denke da noch an folgendes. Ich instanziiere einfach aus Widget A die verschiedenen anderen Widgets, z.b. B, und es wird einfach Widget A mit hide() versteckt und wenn ich wieder auf zurück klicke von Widget B, wird dieses gelöscht und Widget A wird wieder angezeit. Das ist besser oder
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: