Einfaches Bespiel "accessDialog"

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
SiL3NC3
Beiträge: 6
Registriert: 1. Mai 2012 11:48

Einfaches Bespiel "accessDialog"

Beitrag von SiL3NC3 »

Hi Zusammen,

ich lass mal die Floskel "bin neu" weg und versuche meine Gedanken und die QT Welt zu verstehen.

Mein Ansporn:

MainWindow mit 3 Buttons:
1.) SetText1
2.) SetText2
3.) Open Dialog

MyDialog:
1.) QTextBrowser (für den Textoutput)

Beim Klick auf SetText1 soll im Dialog>TextFeld der Text geändert werden auf einen QString.
Beim Klick auf SetText2 soll im Dialog>TextFeld der Text ebenfalls geändert werden auf einen anderen QString.

Dies soll nur dazu dienen, das Verständnis zu trainieren und denke, dass dies ein Standardfall ist, der grundlegend klar sein sollte.
Es kann doch nicht so schwer sein ... kommt aber nicht weiter und alle Ansätze bisher wurden mit Fehlermeldung quittiert, daher Frage ich nun nach einem Ansatz.

(Projektdateien im Anhang)

Vielleicht ein gutes Beispiel um Anfängern das Leben etwas zu erleichtern ...
Danke für Eure Hilfe.
Dateianhänge
accessDialog.zip
(5.34 KiB) 346-mal heruntergeladen
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Einfaches Bespiel "accessDialog"

Beitrag von franzf »

Ich bekomme keine Fehler, weder beim Kompilieren noch beim Ausführen. Das einzige: im Dialog wird kein Text geändert, liegt einfach daran weil der Code dafür fehlt.
Ist das dein Problem? Könntest du deine Frage noch mal genauer formulieren? (Irgendwie fehlt die komplett in deinem Posting)
SiL3NC3
Beiträge: 6
Registriert: 1. Mai 2012 11:48

Re: Einfaches Bespiel "accessDialog"

Beitrag von SiL3NC3 »

Mir fehlt hier der Verständnisansatz, wie ich die Objekte (Widgets?) ansprechen kann, welche nicht in MainWindow beinhaltet sind.
Habe auch schon versucht eine Funktion anzulegen, die dann den Wert ändert. Allerdings bisher ohne Erfolg.

Bevor ich mir hier die Zähne (schon seit Tagen) ausbeisse, wollte ich mal gefragt haben ...
Des Weiteren finde ich mich nur schwer in der Qt Dokumentation zurecht. Wenn es da noch ein paar Tips zum Nutzen der Docs gibt, wäre ich auch dankbar dafür.

Irgendwie tu ich mir schwer, und komme mir meinen Vorkenntnissen aus PHP nicht sehr weit ... :(
SiL3NC3
Beiträge: 6
Registriert: 1. Mai 2012 11:48

Re: Einfaches Bespiel "accessDialog"

Beitrag von SiL3NC3 »

vielleicht so etwas transparenter ... Problem hängt schon an der Definition des Dialogs ...

wieso kann ich nicht im mydialog.h den Dialog initieren und darauf vom MainWindow aus zugreifen?
macht man das nicht so?

Code: Alles auswählen

//mydialog.h
public:
MyDialog *outDialog;
(habs mal noch etwas vereinfacht und nur ein Button genommen)
Dateianhänge
accessDialog 2.zip
(6.22 KiB) 351-mal heruntergeladen
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Einfaches Bespiel "accessDialog"

Beitrag von franzf »

Warum in der MyDialog-Klasse einen Zeiger auf eine Instanz von MyDialog anlegen, wenn du eigentlich Zugriffe aus MainWindow auf genau eine Instanz haben willst?
Du musst das irgendwo im MainWindow speichern. Zwei Möglichkeiten:
1) Direkt eine MyDialog-Instanz als (private) Member in MainWindow.
2) Einen String mit dem Text, der im MyDialog gesetzt werden soll.
Für beide Lösungen brauchst du in MyDialog irgend eine Methode (am besten gleich als SLOT) ala "setText(QString)", um dem Dialog mitzuteilen, dass er einen Text anzeigen soll.
Ich würde Methode 2 wählen. Einen Dialog über längere Zeit zu halten beißt sich für mich. Wenn man das für nötig erachtet (wg. Persistenz der angezeigten Daten) sollte man direkt über DockWidgets nachdenken. In MainWindow::openDialog() kannst du dann den String ganz einfach setzen.
SiL3NC3
Beiträge: 6
Registriert: 1. Mai 2012 11:48

Re: Einfaches Bespiel "accessDialog"

Beitrag von SiL3NC3 »

ich gebs erstmal auf und werd noch Hausaufgaben machen ...
Ohne Beispiele komm ich leider nicht weiter ...

Danke für Deine Ausführung.
Antworten