GOT IT!!!
Mein elementarer Fehler bestand darin, das setResolution aufzurufen, bevor ich über den Druckerdialog den Drucker ausgewählt habe. Logischerweise muß das danach passieren, da dort zunächst die initiale Einstellung des Druckers übernommen wird (bei mir standard 1200dpi)!.
Allerdings scheinen je nach Rechner unterschiedliche Seitengrößen Anwendung zu finden. Auf Arbeit hab ich ein pageRect von 4800x6400 pixel bei 600dpi, zu Hause sind es nur ca 1500x2400. Das macht eine Skalierung zwingend erforderlich und zwar ausgehend von der Seitengröße, mit der man den painter programmiert hat. Das sieht folgendermaßen aus:
Code: Alles auswählen
...
QPrinter printer(QPrinter::HighResolution);
QPrintDialog *dlg = new QPrintDialog(&printer, this);
dlg->setWindowTitle("Print");
if(dlg->exec()!=QDialog::Accepted)
{ return; }
printer.setResolution(600);
QPainter painter;
painter.begin(&printer);
painter.save();
QRect pageRect = printer.pageRect();
double d_RatioX = ((double)pageRect.width()/4800);
double d_RatioY = ((double)pageRect.height()/6400);
painter.scale(d_RatioX, d_RatioY);
...
// hier wird gezeichnet...
Die 4800x6400 sind die Seitengröße, auf die ich gezeichnet habe. Das Scale paßt das Painter Objekt auf die wahre Seitengröße an, bein mir also ca 1/3