Qt4: Aufloesungsunabhaengig zeichnen / drucken

Alles rund um die Programmierung mit Qt
Antworten
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Qt4: Aufloesungsunabhaengig zeichnen / drucken

Beitrag von nando »

Hi,
vielleicht kann mir jemand helfen. ich habe folgende situation:

In einer XML datei steht ein beschreibung des layouts einer seite die ich drucken will. Sozusagen ein Template fuer ein Formular.
Es wird beschrieben von wo nach wo linien gezeichnet werden sollen, es werden ueberschriften gezeichnet usw....
z.b eine leere rechnung....
da steht dann z.B. sowas wie:

<LINE x1Pos=10 y1Pos=10 x2Pos=340 y2Pos=10/>

In einem QWidget in paintEvent wird dann in diesem Fall eine Linie gezeichent
von painter.drawLine(10,10,340,10) ...

Jetzt habe ich das Problem, dass wenn ich dann diesen painter drucke abhaengig von der aufloesung verschiedene Ergenisse rauskommen....

wie kann ich denn ein mapping schaffen von 10,10,340,10 so, dass das Ergebnis UNABHAENIG VON DER AUFLOESUNG immer identisch auf dem Drucker erscheint ??

sorry, aber bin echt bissi am verzweifeln, weil mir nicht ganz klar ist wie ich das anstellen soll......

gruss,
nando
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du willst also, daß deine 340(?) auf dem Drucker immer 340mm sein sollen? QPrinter ist von QPaintDevice abgeleitet und liefert dir (wenn es die Treiber richtig mitteilen) DPI, mithilfe derer du umrechnen kannst.
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

Genau..also die angabe in der xml datei sind pixel...

und in paintEvent zeichne ich dann anhand dieser pixel information....

zu diesem zeitpunkt spielt der printer noch keine rolle.....

erst wenn ich dann einen druckauftrag schicke... will ich, dass dieser painter gedruckt wird... und dann unabhaengig von der aufloesung..

also sollen 340px immr Xcm sein aufm papier.....

wie soll ich dass denn dann an den qpainter uebergeben...
also wo soll ich dieses mapping einbauen?
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

px * dpi
printer.device()->dpiX();
printer.device()->dpiY();
nando
Beiträge: 321
Registriert: 28. Oktober 2004 13:16

Beitrag von nando »

KernelPanic hat geschrieben:px * dpi
printer.device()->dpiX();
printer.device()->dpiY();
Hmmm geht es vielleicht bissi genauer ??? ;)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Antworten