Drucken mit QT3 (Punktgroesse beim Zeichnen)

Alles rund um die Programmierung mit Qt
Antworten
JuergenSachs
Beiträge: 1
Registriert: 9. August 2005 19:56

Drucken mit QT3 (Punktgroesse beim Zeichnen)

Beitrag von JuergenSachs »

Hallo,

kann mir keiner Sagen, wie die Punktgröße in QT3 definiert ist, bzw wovon die abhängt ?
Entweder hat Sie eine Feste Größe oder Sie ist abhängig von der Auflösung meiner "Zeichenfläche".
Leider habe ich keinen Hinweis hierzu gefunden in den Docs.

Ich habe damit nachfolgendes Problem:
Ich ärgere mich im Moment mit dem "Design" von einem Ausdruck herrum.

Mein Problem hierbei ist, das die Ergebnisse, je nach Rechner und Drucker Unterschiedlich sind.
Mein Problem ist, das ich in ein existierendes Formular Drucken muß. Der Ausdruck muß also in vorgefertigte Felder passen.
Den Ausdruck Initialisiere ich mit:
> -----
> if ( printer->setup(0) ) // Nur wenn Drucker ausgewählt
> {
> //printer->setPrintProgram(fsconfig->getProgrammName());
> printer->setFullPage(TRUE);
> QPainter p;
> if( !p.begin( printer ) ) // paint on printer
> return FALSE; // ging wohl schief
> QFont font = QApplication::font();
> font.setPointSizeFloat(9.35); //10,00 , 10,20 , 10.25);
> p.setFont( font ); //@todo einen festen font zum drucken setzen
> QFontMetrics fm = p.fontMetrics();
> QPaintDeviceMetrics metrics( printer ); // need width/height
> p.drawText( Margin + (td->getX() * fm.width('u')), Margin + (fm.lineSpacing() * td->getY()), metrics.width(), fm.lineSpacing(), Qt::ExpandTabs | Qt::DontClip, getFieldText(td->getType()) );
> .................... snipp ......................
> -----
Nun sollte ja der Ausdruck immer gleich groß sein. Er kann sich zwar leicht verschieben durch die Druckränder, was aber keine Rolle spielen würde.
Auf einem Rechner passt das auch perfekt.
Das Problem ist, das der Ausdruck an einem zweiten Rechner insgesamt über 2,5 cm höher war und nicht mehr in die Felder passte.

So wie ich das gelesen habe, ist doch die Punktgröße, die mit setPointSizeFloat() gesetzt wird konstant groß. Sollte also unabhängig vom Drucker und Rechner sein. Oder muß ich die Größe eines Punktes erst noch ausrechnen ?
Im Prinzip brauche ich "Schreibmaschienen Schrift" von der größe her.

Kann mir einer sagen was ich falsch mache ?!

Beide Rechner haben Suse 9.3.

Danke Juergen
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Nicht unbedingt, was du falsch machst, aber ich habe das auch beobachtet, wenn man die DruckKlasse aus Qt3 nimmt ergeben sich auf gleichen und verschiedenen Linux Systemen unterschiedliche Drucke.

Wovon genau so etwas abhängt habe ich auch noch nicht herausgefunden, ich nehme allerdings an, das es nur Konfigurationsprobleme von Druckeroptionen wie cups, lpr usw. sind.
Antworten