Draws a pixmap at (x, y) by copying a part of the given pixmap into the paint device.
5
6
(x, y) specifies the top-left point in the paint device that is to be drawn onto. (sx, sy) specifies the top-left point in pixmap that is to be drawn. The default is (0, 0).
7
8
(sw, sh) specifies the size of the pixmap that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the pixmap.
Da heisst, die Funktion zeichnet das Pixmap von oben links beginnend bis
unten rechts. Ich bräuchte nun eine Funktion, die von unten rechts
beginnend bis oben links zeichnet. Weiss da einer etwas?
Natürlich könnte ich mir nun ein Bild in der Farbe des Hintergrunds
erstellen und damit das eigentlich Bild überdecken aber das wäre zuerst
einmal nur ein workaround für mich.
Hallo Mike,
wenn ich das richtig verstehe, kannst Du mit der Funktion ein
Pixmap, bzw. auch einen Teil davon, auf ein PaintDevice zeichnen /
kopieren. Dabei sollte es doch egal sein, ob das von links nach rechts
oder umgekehrt gezeichnet wird. Oder verstehe ich etwas an Deiner Frage
nicht?
Gruß
Olaf
Ich habe einfach einen vertiaklen Balken, der einen Füllstand
wiedergibt. Jetzt möchte ich, dass der Balken von oben her niedirger
wird und nicht von unten. Und mit dieser Funktion habe ich es bisher nur
geschafft, den Balken von unten her kleiner zu machen.
Ok. Welche Werte veränderst Du denn?
x, y, sx, sy, w oder h?
Wenn der Balken von oben her niedriger werden soll,
musst Du y (also die vertikale Position auf dem PaintDevice)
verändern. Damit der untere Rand des gezeichneten Pixmaps konstant
bleibt,
musst Du natürlich h auch entsprechend verändern.
Normalerweise nimmt man für so etwas eine Fertige Füllstandsanzeige
(QProgressBar).
Gruß
Olaf
Olaf D. schrieb:> Wenn der Balken von oben her niedriger werden soll,> musst Du y (also die vertikale Position auf dem PaintDevice)> verändern.
y ist die Position, an die gezeichnet werden soll. Hat also nichts mit
der "Normierung" des Pixmaps zu tun.
Ich habe nun mit sy etwas herumgespielt. So wie ich das sehe ist sy
einfach ein Offset. Das Pixmap wird einfach um sy nach oben verschoben
und oben herum abgeschnitten. Zusätzlich habe ich den gleiche Werte wie
in sy zu y Position addiert und schon scheint es zu passen.
Olaf D. schrieb:> Normalerweise nimmt man für so etwas eine Fertige Füllstandsanzeige> (QProgressBar).
Ich verwedene gar keine Widgets von Qt, da ich fertige Grafiken habe.
Ja, das ist ja schön und gut.
Ich nehme in so einem Fall das originale Widget und überschreibe in
einer abgeleiteten Klasse die paint Methode.
Aber schön das es jetzt funktioniert.
Gruß
Olaf
Olaf D. schrieb:> Ich nehme in so einem Fall das originale Widget und überschreibe in> einer abgeleiteten Klasse die paint Methode.
Ok so tief bin ich in die ganze Thematik noch nicht eingestiegen.
Mike schrieb:> Olaf D. schrieb:>> Wenn der Balken von oben her niedriger werden soll,>> musst Du y (also die vertikale Position auf dem PaintDevice)>> verändern.>> y ist die Position, an die gezeichnet werden soll. Hat also nichts mit> der "Normierung" des Pixmaps zu tun.
y gibt die Oberkante an. Wenn die verschoben werden soll, musst du y
ändern. Mir ist nicht ganz klar, was du mit "Normierung" meinst.
> Ich habe nun mit sy etwas herumgespielt. So wie ich das sehe ist sy> einfach ein Offset.
sx, sy, sw und sh beschreiben, welchen Ausschnitt aus der Pixmap du
zeichnen willst.
> Das Pixmap wird einfach um sy nach oben verschoben und oben herum> abgeschnitten.
Ja, so kann man es auch formulieren.
Du musst halt rechnen. Wähle x und y so, dass bei dem sx und sy was du
angibst die unten links da landet wo du sie haben willst, obwohl x und y
die Ecke oben rechts angeben ... ist ja leicht machbar.