Realisierung einer grafischen Auswertung

Alles rund um die Programmierung mit Qt
Antworten
sdaub
Beiträge: 20
Registriert: 24. November 2004 09:31

Realisierung einer grafischen Auswertung

Beitrag von sdaub »

Hallo,
ich schreibe an einem kleinen Kassenbuchprogramm und versuche nun eine grafische Darstellung der Ein- und Ausgaben. Hat vielleicht irgendjemand einen Tipp wie ich das realisieren kann?

Vielen Dank
Steffen
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Hi Steffen

wie wär's mit QTable ?

ansonsten habe ich mir eine Art Reportklasse geschrieben die auf QTextBrowser basiert und welche die Darstellung von Qt - Richttext in (beliebigen) Zeilen und Spalten und so weiter (sowie die erfordliche Überschrift und die Druckfunktionen) beherrscht (oder zumindest aus meiner Sicht erheblich vereinfacht).

Im Prinzip könntest Du da mal reinschauen (allerdings erst im nächsten Jahr :-) 100% ig übernehmen geht wohl nicht, weil ich mit einer objektorientierten Datenbank arbeite und einfach meine darzustellenden persistenden Objekte (bzw. die zugehörigen Sets) reinschmeisse.

Gruss Arne
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Also ich habe das Problem genau anders herum gelöst als Arne.

QTable wird einfach gedruckt, nach den Maßen, die vorhanden sind, wie Header, Height, Weight. Hier wird einfach die Tabelle 1:1 gedruckt wenn du so willst, das macht bei mir auch Sinn, weil man nach der Auswertung, z.B. Texte oder sonstwas schnell noch verbessern, anpassen kann, was dann genauso gedruckt wird.

Allerdings ziemlich clever, sone ReportingClass. Was meinst du eigentlich mit grafischer Darstellung von Ein- und Ausgaben? Schwarz und Rot!? Oder doch was ganz anderes?
sdaub
Beiträge: 20
Registriert: 24. November 2004 09:31

Beitrag von sdaub »

FlorianBecker hat geschrieben: Was meinst du eigentlich mit grafischer Darstellung von Ein- und Ausgaben? Schwarz und Rot!? Oder doch was ganz anderes?
ich meine damit z.B. ein Balkendiagramm oder ein Liniendiagramm, wo der Verlauf der Ein oder Ausgaben dargestellt wird. Die Daten stehen schon in einer QTable drin, aber das ist ja keine grafische Darstellung. Ein einfaches Balkendiagramm habe ich jetzt mit QPainter.fillRect() realisiert.

Jetzt fehlt mir noch ein Verlauf über Eingaben bzw. Ausgaben, also irgendein Liniendiagramm. Bin dabei es mit QPainter.drarPolyline().

Danke für euer Hilfe und weitere Tipps
Steffen
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ein Balken Ein- und ein Balken Ausgaben?

Mh, drawPolyline? Also mehr son Diagramm mit Punkten verbinden.

.___. .___.
./ \.____./ \.

So in etwa? Ja, warum nicht, das scheint reliable. Schade, Leerzeichen gehen nicht richtig. Brauchst ein wenig Fantasie, aber wenn es das richtige war, dann weisst du was es sein soll. :)
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

Hi,
ich wuerde das nach dem MVC (Model View Concept) versuchen zu loesen. Dabei sind die Daten und die "Sicht" auf die Daten gekapselt.
Ich weiss nicht, wie genau das in deiner Table implementiert ist, aber dazu muesstes du die Daten in einer Extra Klasse, dem Modell verwalten und verschiedene andere Klassen registrieren sich als "interessiert" an diesen Daten bei dieser Modellklasse. Das waeren dann z.B. Deine Table Klasse und spaeter noch verschiedene andere Views (Balkendiagrammklasse, Liniendiagrammklasse etc...)
Aendern sich nun die Daten, egal von wo getriggert ist das modell verantwortlich allen interessierten Klassen sprich Views zu informieren. So sind alle Views immer sycnron und auf dem aktuellen Stand.
Hoffe das hat etwas geholfen.
Zu diesem Thema findest du viel im Netz wenn du mal nach "MVC - Model View Concept" oder auch "Observer Pattern". suchst.

Gruss,
Nando
gandalf
Beiträge: 39
Registriert: 31. August 2004 17:00
Wohnort: Varel
Kontaktdaten:

Beitrag von gandalf »

du kannst dir das MVC unter QT schön leicht machen, indem du einfach SIGNAl & SLOTS benutzt und einfach die Änderung in ein Signal packst und an alle interesierten Klaasen schickst.
Die sollten dann nur eine Methode in diesen Klassen haben die auf dieses Signal reagiert und die Änderungen übernimmt und dann ein repaint macht.

Mit QT schön zu lösen find ich

gandalf
benutzte QT 3.2 nc auf w2k
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

Hi,
ja das ist wohl die beste loesung unter QT, hast schon recht.

also mit dem connecten der slots registrieren sich sozusagen die views als "interessiert".
das model ist dann das object das die signal ausloest... (emit)

gruss,
nando
Antworten