Qt-Neuling sucht Hilfe bei Programmierung eines Clients
Verfasst: 18. Februar 2008 13:46
Hallo!
Ich beschäftige mich erst seit kurzem mit Qt und komme bei einem Projekt nicht weiter.
Folgendes habe ich vor:
Ich möchte eine Client-Anwendung schreiben, die einen Benutzer an einem Server authentifiziert und dann eine Liste, die der Server nach erfolgreichem Login schickt, tabellarisch darstellt.
Leider habe ich keinen Schimmer wie ich die Sache richtig angehen soll.
Folgende Dinge habe schon ausprobiert, aber jedesmal bin ich damit in der Sackgasse gelandet:
1.
- ein Login-Fenster und ein Fenster, dass die Tabelle anzeigt
- für beide Fenster existiert jeweils eine eigene Klasse, die von der QWidget-Klasse abgeleitet ist
- beide Fensterobjekte werden sofort nach Programmstart instanziert, es ist aber zunächst nur dass Login-Fenster sichtbar
- wird auf einen Login-Button geklickt und ist der Login erfolgreich, wird das Login-Fenster versteckt und das Tabellenfenster wird sichtbar
- es existiert noch eine dritte von QWidget abgeleitete Klasse, die die parent-Klasse für die beiden Fenster darstellt und als gemeinsame Schnittstelle dient
- außerdem wird in main() neben der eben beschriebenen Schnittstellenklasse noch eine Threadklasse instanziert, die dann die Kommunikation mit dem Server über sockets regelt
2. wie 1., jedoch wird die Threadklasse hier in der Schnittstellenklasse instanziert
3. wie 1., jedoch wird hier auf einen extra Thread für die Kommunikation verzichtet; diese läuft stattdessen innerhalb der Schnittstellenklasse ab
4.
- nur insgesamt 2 Klassen für Login und Tabelle
- Login-Objekt ist parent des Tabellen-Objekts
- Kommunikation innerhalb des Login-Objekts
Ich wollte jetzt eigentlich noch ne Möglichkeit mit QDialog- statt QWidget-Objekten probieren, aber bevor ich wieder ewig rumprobier und es kommt am Ende nur Blödsinn raus, dachte ich mir, hol ich lieber mal ne Expertenmeinung ein.
Also, im Klartext:
Kann mir irgendjemand sagen, welche der o.g. lösungsansätze vielleicht annähernd erfolgsversprechend klingt, bzw. wie ich die Aufgabenstellung am besten angehen sollte?
Bin für jeden Ratschlag dankbar.
Ich beschäftige mich erst seit kurzem mit Qt und komme bei einem Projekt nicht weiter.
Folgendes habe ich vor:
Ich möchte eine Client-Anwendung schreiben, die einen Benutzer an einem Server authentifiziert und dann eine Liste, die der Server nach erfolgreichem Login schickt, tabellarisch darstellt.
Leider habe ich keinen Schimmer wie ich die Sache richtig angehen soll.
Folgende Dinge habe schon ausprobiert, aber jedesmal bin ich damit in der Sackgasse gelandet:
1.
- ein Login-Fenster und ein Fenster, dass die Tabelle anzeigt
- für beide Fenster existiert jeweils eine eigene Klasse, die von der QWidget-Klasse abgeleitet ist
- beide Fensterobjekte werden sofort nach Programmstart instanziert, es ist aber zunächst nur dass Login-Fenster sichtbar
- wird auf einen Login-Button geklickt und ist der Login erfolgreich, wird das Login-Fenster versteckt und das Tabellenfenster wird sichtbar
- es existiert noch eine dritte von QWidget abgeleitete Klasse, die die parent-Klasse für die beiden Fenster darstellt und als gemeinsame Schnittstelle dient
- außerdem wird in main() neben der eben beschriebenen Schnittstellenklasse noch eine Threadklasse instanziert, die dann die Kommunikation mit dem Server über sockets regelt
2. wie 1., jedoch wird die Threadklasse hier in der Schnittstellenklasse instanziert
3. wie 1., jedoch wird hier auf einen extra Thread für die Kommunikation verzichtet; diese läuft stattdessen innerhalb der Schnittstellenklasse ab
4.
- nur insgesamt 2 Klassen für Login und Tabelle
- Login-Objekt ist parent des Tabellen-Objekts
- Kommunikation innerhalb des Login-Objekts
Ich wollte jetzt eigentlich noch ne Möglichkeit mit QDialog- statt QWidget-Objekten probieren, aber bevor ich wieder ewig rumprobier und es kommt am Ende nur Blödsinn raus, dachte ich mir, hol ich lieber mal ne Expertenmeinung ein.
Also, im Klartext:
Kann mir irgendjemand sagen, welche der o.g. lösungsansätze vielleicht annähernd erfolgsversprechend klingt, bzw. wie ich die Aufgabenstellung am besten angehen sollte?
Bin für jeden Ratschlag dankbar.