connect funktioniert nicht

Verschiedenes zu Qt
Antworten
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

connect funktioniert nicht

Beitrag von TK »

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

Beitrag von solarix »

das ganze klingt ziemlich haesslich... vor allem das "addWidget(B->Button)" .. und haessliche Designs neigen dazu, nicht zu funktionieren :wink:

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?
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Hey,

jaaa, es klingt hässlich? Oh, hm. :( Wie würde es dennf hübsch und funktionierend klingen?

Was erwartet du denn? (Soll auch der Parent (Widget A)) geschlossen werden?
Ja.
Was bedeutet "Funktioniert nicht"? Erhaelst du irgendwelche Fehlermeldungen in der Konsole?
Keine Fehlermeldungen. Der Klick auf den Button bewirkt nichst.

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:

Beitrag von Christian81 »

connect() hat auch einen Rückgabewert - was sagt der?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

Liefert false zurück. Aber ich verfolge das Problem nicht mehr, da ich nun einen anderen Ansatz habe. Von daher, Wayne.
Trotzdem, Danke :D
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn er false zurückliefert erübrigt sich ja die Frage warum es nicht geht...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
TK
Beiträge: 74
Registriert: 3. April 2009 11:33

Beitrag von TK »

stimmt
Antworten