MDI: wie Parameter zwischen Childs austauschen?

Alles rund um die Programmierung mit Qt
Antworten
-marcelp-
Beiträge: 36
Registriert: 12. Januar 2007 09:00
Kontaktdaten:

MDI: wie Parameter zwischen Childs austauschen?

Beitrag von -marcelp- »

Hallo zusammen,

ich schreibe eine MDI-Anwendung, diese beinhaltet drei Module (Artikelverwaltung, Adressdaten, Rechnungen).
Ich möchte sowohl Parameter von Modul A an Modul B übergeben als auch externe Funktionen aufrufen können.

Beispiel: Im Adressmodul gibt es einen Button, mit dem möchte ich die aktuell ausgewählte Adresse als Empfänger auf die momentane Rechnung setzen.

Irgendwie fehlt mir noch der Ansatz.
Danke schon mal, Marcel
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

1. Drag- and Drop
2. Die Klasse, die beide Fenster erstellt, sorgt dafür, daß beide Fenster über Signal-Slot-Verbindungen zusammengehängt werden.
3. Fenster 1 erzeugt Fenster 2, somit kennen sich auch beide
4. Statische Methoden (naja...)
5. ...
graythornAK
Beiträge: 29
Registriert: 16. März 2007 15:14

Beitrag von graythornAK »

Ich würde mir mal Gedanken über das Programdesign machen.

Einen Button, der eine ausgewählte Adresse in ein anderes Formular einträgt ist sehr fraglich! In welchen andere Formular? Können es mehrere sein??? Vieleicht möchtest Du ja mehrere Rechnungen gleichzeitig bearbeiten und/oder darstellen (wenn nicht jetzt, dann vielleicht in einem späteren Update...), dann geht dieser Ansatz in die Hose.
Ich würde z.B. im Rechnungsfenster einen Button "Adresse einfügen" erwarten...

Gemeinsame Datenbasis und dann verschiedene Ansichten mit entsprechenden Bearbeitungsmethoden sind wohl die Lösung.

Gruß
Andreas
-marcelp-
Beiträge: 36
Registriert: 12. Januar 2007 09:00
Kontaktdaten:

Beitrag von -marcelp- »

OK, wäre auch in Ordnung. Dann brauche ich im Rechnungsmodul eben Zugriff auf die gerade gewählte Adresse.
Das Ganze ist mehr ein prinzipielles Ding. Also allgemein: Wie bekomme ich in MDI-Child B einen Zeiger auf die aktuelle Instanz des MDI-Child A? (Wobei für mich das Hindernis ist, dass nicht ein Child das andere startet sondern beides vom MDI-Mainwindow...)
Oder gibt es vielleicht eine Möglichkeit des gemeinsamen Variablenzugriffs ähnlich der extern-Deklaration von C?

Grüße,
Marcel
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Was genau passt denn z.B. an upsalas Vorschlag Nr.2 nicht?
-marcelp-
Beiträge: 36
Registriert: 12. Januar 2007 09:00
Kontaktdaten:

Beitrag von -marcelp- »

Nichts - außer das es präziser sein könnte und mir mit zB. Codebeispielen echt geholfen wäre.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich soll dir für alle 4 Vorschläge den fertigen Code liefern? Sonst noch irgendwelche Wünsche?
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Nichts - außer das es präziser sein könnte und mir mit zB. Codebeispielen echt geholfen wäre.
kein Problem: http://doc.trolltech.com/4.5/signalsand ... ll-example
Die beiden "Counter" tauschen Daten ohne sich zu kennen.. ist doch genau das, was du brauchst...
-marcelp-
Beiträge: 36
Registriert: 12. Januar 2007 09:00
Kontaktdaten:

Beitrag von -marcelp- »

Danke Solarix schon mal, ich werde den Link mal durchgehen.

Naja und Upsala - bei Dir würde ich mich freuen wenn Du in Zukunft erst anworten würdest, nach dem Du mein Anliegen verstanden hast.

Marcel
graythornAK
Beiträge: 29
Registriert: 16. März 2007 15:14

Beitrag von graythornAK »

Naja und Upsala - bei Dir würde ich mich freuen wenn Du in Zukunft erst anworten würdest, nach dem Du mein Anliegen verstanden hast.
Das finde ich jetzt wirklich unhöflich!

Ohne Dir zu nahe treten zu wollen, es scheint mir doch so, das Du noch nicht über allzu viel Programmiererfahrung (zumindest Qt und C++) verfügst. Das ist kein Problem, und dafür gibt es dieses Forum! Schließlich haben wir alle mal klein angefangen.

Aber sich über die Antworten anderer zu beschweren weil Du damit nicht klar kommst, finde ich doch etwas fehl am Platz. Viel höflicher wäre eine Nachfrage in der Form: "Kannst Du das bitte näher erläutern?" oder so...

Schließlich ist das Forum nicht dafür da, Deine Programmierarbeiten zu erledigen, sonder vielmehr dazu, einen (oder mehrer) Weg(e) aufzuzeigen. Fertige Lösungen kannst Du nicht erwarten.

Nichts für ungut
Andreas
-marcelp-
Beiträge: 36
Registriert: 12. Januar 2007 09:00
Kontaktdaten:

Beitrag von -marcelp- »

OK, um das ein bischen ins rechte Licht zu rücken:

Zuerst mal denke ich, daß jeder hier den Spielraum haben sollte, solche Sätze zu äussern. Darin ist in meinen Augen nichts unhöflich oder beleidigend - was ich auch auf keinen Fall erreichen wollte.

Was meine Programmierkenntnisse angeht liegst Du (fast) richtig: Ich entwickle in einer Firma C-Programme für Microcontroller, sitze aber was Qt angeht an meinem ersten Projekt. Und genau darum ist es mir wichtig, mich mit Euch austauschen zu können.

Nur brauche ich eben genaue Hilfestellung. In meinem 2. Beitrag habe ich versucht, meine Frage zu präzisieren. Darauf hätte ich mir ein Beispiel von 2-3 Zeilen Code oder einen Link (wie später von solarix) gewünscht. Auf keinen Fall sollt Ihr mein Programm schreiben - was aber auch nirgends gesagt wurde.

Es ist nur so das ich von Dir, Upsala, schon einige Antworten bekam, die mir nicht geholfen haben. Darum nimm meine Kritik als das was sie ist: Die Bitte, Dich genauer und für einen Anfänger verständlich auszudrücken.

Bis dahin, Marcel
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Zuerst mal denke ich, daß jeder hier den Spielraum haben sollte, solche Sätze zu äussern. Darin ist in meinen Augen nichts unhöflich oder beleidigend - was ich auch auf keinen Fall erreichen wollte.
Jemandem zu unterstellen, dass er das Problem nicht verstanden hat obwohl er es offensichtlich hat, _ist_ unhöflich...
Was meine Programmierkenntnisse angeht liegst Du (fast) richtig: Ich entwickle in einer Firma C-Programme für Microcontroller, sitze aber was Qt angeht an meinem ersten Projekt. Und genau darum ist es mir wichtig, mich mit Euch austauschen zu können.
Der Punkt ist folgender: Wer sich ernsthaft in eine neue Materie einarbeiten möchte, muss sich zuerst mit den Basics vertraut machen. Wenn jemand eine Frage stellt, aus welcher ersichtlich ist, dass diese "Hausaufgaben" noch nicht erledigt wurde, muss er halt mit etwas weniger ausführlichen Antworten rechnen.
Upsalas Botschaft war klar: Entweder du hast die Tutorials von Qt schon durchgearbeitet (dann hätte der Hinweis auf "Signals/Slots" genügt) oder du solltest das dringend nachholen... :wink:
-marcelp-
Beiträge: 36
Registriert: 12. Januar 2007 09:00
Kontaktdaten:

Beitrag von -marcelp- »

Der Link ist hilfreich - kam aber von Dir und auch erst nach Upsalas Antworten.

Ich möchte aber auf keinen Fall Erbsen zählen. Darum nehme ich mir Eure Kommentare zu Herzen und tue erstmal das wohl einzig richtige - meine Hausaufgaben...

Danke für Eure Beiträge,
Marcel
Antworten