Drucken mit Qt QPrinter QPainter

Alles rund um die Programmierung mit Qt
Antworten
nickvan86
Beiträge: 24
Registriert: 8. Oktober 2013 20:26

Drucken mit Qt QPrinter QPainter

Beitrag von nickvan86 »

Hallo Forum,

ich durchsuche mittlerweile seit 2 Tagen das internet auf der suche wie man es schafft in Qt etwas zu drucken.
Ich habe mir im Internet folgendes Beispiel mal angeschaut und dies dann auch probiert:

Code: Alles auswählen

// Drucker erstellen
    QPrinter *meinPrinter = new QPrinter();

    // Druckerdialog
    QPrintDialog *WelcherDruckerDialog = new QPrintDialog(meinPrinter, this);
    WelcherDruckerDialog->setWindowTitle(tr("Mit welchem Drucker soll ich drucken"));

    // Abbruchbehandlung
    if (WelcherDruckerDialog->exec() != QDialog::Accepted)return;

    // Neue Seite einfügen
    meinPrinter->newPage();

    //Der entscheidenede Punkt: Hole aus deinem QTextEdit ein echtes QTextDocument raus und nicht irgendeinen Listen-Murks
    QTextDocument* text_doc1 = ui->textEdit1->document();

    //Drucke dein QTextDocument
    text_doc1->print(meinPrinter);
Soweit so gut. Dieses Beispiel funktioniert auch ohne Probleme. Nun möchte ich das ganze auch irgendwie anwenden können. Nur leider da tu ich mir verdammt schwer.
Ich habe ein QDialog mit 4-6 LineEdit (Vorname, Nachname,...) und 2-3 textEdit. Nun möchte ich das sauber auf einer seite ausdrucken. nur weis ich nicht genau wie und wo ich am besten anfagen.
Hab gelesen das man den Text quasi "zeichnen" muss.
Hat einer von euch das schonmal so ungefähr gemacht?

Gruß

Alex
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Re: Drucken mit Qt QPrinter QPainter

Beitrag von archer »

Ich drucke fast immer über ein QTextDocument.
Dort setze ich meine Texte aus den verschiedenen Objekten hinein und drucke es dann.
nickvan86
Beiträge: 24
Registriert: 8. Oktober 2013 20:26

Re: Drucken mit Qt QPrinter QPainter

Beitrag von nickvan86 »

Hi,

danke für den Tip. Ich werde es mal versuchen und vielleicht nochmal nachfragen falls ich nicht zurecht kommen sollte.
Hoffe das ist okay?

Gruß und Danke
Alex
nickvan86
Beiträge: 24
Registriert: 8. Oktober 2013 20:26

Re: Drucken mit Qt QPrinter QPainter

Beitrag von nickvan86 »

Habe mir nun folgenden Code mal angeschaut und nachgebaut:

Code: Alles auswählen

 QPainter painter(this);

    painter.drawText(100,120,"Hello World");

    QRect rec(100,120,250,25);
    painter.drawRect(rec);
    painter.drawText(rec,Qt::AlignLeft,"Left");
    painter.drawText(rec,Qt::AlignCenter,"Center");
    painter.drawText(rec,Qt::AlignRight | Qt::AlignVCenter,"Right");

    QRect rec2(100,150,25,25);
    painter.drawRect(rec2);
    painter.drawText(rec2,"This will be clipped");

    QTextDocument doc;
    QRect rec3(0,0,250,250);
    painter.translate(20,20);
    doc.setTextWidth(rec3.width());
    doc.setHtml("<b><u>Hello</u></b>");

    doc.drawContents(&painter,rec3);
anstatt "drawContents" sagst du druck mir doc?
Habe ich das so richtig verstanden? Die Bemaßung ist in Pixel vom Jeweiligen Fenster? Hast du dann ein Fenster das du dann in A4 ausdruckst?

Gruß
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Re: Drucken mit Qt QPrinter QPainter

Beitrag von archer »

Ich erzeuge mir ein QTextDocument, das ich mit meinen Texten aus der Oberfläche fülle.
Das mache ich über QTextCursor. Dann nehme ich einen QPainter, der das Dokument auf den
Drucker zeichnet. Dazu nehme ich das drawContents(), so wie du.
Ich hatte mich damals an folgendem orientiert:
http://qt-apps.org/content/show.php/Tex ... tent=62383
nickvan86
Beiträge: 24
Registriert: 8. Oktober 2013 20:26

Re: Drucken mit Qt QPrinter QPainter

Beitrag von nickvan86 »

Okay muss ich mal probieren. Aber das an was du dich da orentiert hast habe ich gerade herunter geladen :lol:
aber drucken an sich ist doch nicht ganz leicht :-(
nickvan86
Beiträge: 24
Registriert: 8. Oktober 2013 20:26

Re: Drucken mit Qt QPrinter QPainter

Beitrag von nickvan86 »

Also ich komme damit gar nicht zurecht :-( naja dann wohl nicht :shock:
Antworten