gekrümmte Balkenanzeige mit QPainterPath
Verfasst: 24. September 2013 15:10
Hi @ all 
Ich möchte für meine GUI eine Art Balkenanzeige zeichnen und weiß nicht so recht wie ich da am besten vorgehen sollte..
Deswegen hoffe ich hier auf die Hilfe von ein paar erfahrenen QT-Künstlern
Erstmal zum Program:
Ich verwende ein QGraphicsView mit Scene in dem ich ein QGraphicsObject anzeige. In der paint und boundingRect funktion dachte ich mir die Funktion der Anzeige zu verwirklichen.
Ein QGraphicsObject deswegen, da ich darin zeichnen und den Signal und Slot Mechanismus verwenden kann.
Die Anzeige bekommt dann Füllwerte übergeben (zwischen 0 und 100 oder so) und füllt dann den Balken aus.
Soweit die Architektur. Hier noch eine Skizze wie ich mir die Balkenanzeige gedacht hatte:

Was ich mir bisher überlegt hatte:
die shape()-funktion benutzen und die äußere Form über QPainterPath vorgeben -> welche Formen kombinieren? unterer Rand könnte mit einem Rechteck gehen von dem eine Ellipse und ein Rechteck subtrahiert werden. Aber oben?
"Fülllevel" anzeigen indem die shape gefüllt und ein Rechteck darüber gelegt wird. Je nach Füllstand könnte man das Rechteck nach rechts verschieben und von der Füllung wieder mehr anzeigen. Aber in der Kurve ist das Problem das der Füllstand immer im rechten Winkel zum Rand stehen sollte, also bei "0" nach oben schaut und bei "100" nach rechts. Dazu dachte ich mir ein 2tes Rechteck darüberzulegen, welches mit dem Fülllevel rotiert wird um die richtige ausrichtung zu erhalten und dann zusammen mit dem 1sten Rechteck verschoben wird.
Ich bin mir allerdings nicht sicher ob dieser Ansatz was taugt oder zum scheitern verdammt ist..
Was würde euch dazu einfallen / wie würdet Ihr dafür vorgehen?
Für Ideen und Anregungen wäre ich sehr dankbar!
Ich möchte für meine GUI eine Art Balkenanzeige zeichnen und weiß nicht so recht wie ich da am besten vorgehen sollte..
Deswegen hoffe ich hier auf die Hilfe von ein paar erfahrenen QT-Künstlern
Erstmal zum Program:
Ich verwende ein QGraphicsView mit Scene in dem ich ein QGraphicsObject anzeige. In der paint und boundingRect funktion dachte ich mir die Funktion der Anzeige zu verwirklichen.
Ein QGraphicsObject deswegen, da ich darin zeichnen und den Signal und Slot Mechanismus verwenden kann.
Die Anzeige bekommt dann Füllwerte übergeben (zwischen 0 und 100 oder so) und füllt dann den Balken aus.
Soweit die Architektur. Hier noch eine Skizze wie ich mir die Balkenanzeige gedacht hatte:

Was ich mir bisher überlegt hatte:
die shape()-funktion benutzen und die äußere Form über QPainterPath vorgeben -> welche Formen kombinieren? unterer Rand könnte mit einem Rechteck gehen von dem eine Ellipse und ein Rechteck subtrahiert werden. Aber oben?
"Fülllevel" anzeigen indem die shape gefüllt und ein Rechteck darüber gelegt wird. Je nach Füllstand könnte man das Rechteck nach rechts verschieben und von der Füllung wieder mehr anzeigen. Aber in der Kurve ist das Problem das der Füllstand immer im rechten Winkel zum Rand stehen sollte, also bei "0" nach oben schaut und bei "100" nach rechts. Dazu dachte ich mir ein 2tes Rechteck darüberzulegen, welches mit dem Fülllevel rotiert wird um die richtige ausrichtung zu erhalten und dann zusammen mit dem 1sten Rechteck verschoben wird.
Ich bin mir allerdings nicht sicher ob dieser Ansatz was taugt oder zum scheitern verdammt ist..
Was würde euch dazu einfallen / wie würdet Ihr dafür vorgehen?
Für Ideen und Anregungen wäre ich sehr dankbar!