2012-07-09 19 views
5

Ho scritto alcuni dati di esempio su un file di testo. Voglio stampare questo file di testo sulla mia stampante. Qualcuno potrebbe dirmi come sarà il codice per farlo usando Qt4?Come stampare un file di testo sulla stampante in Qt?

+2

Date un'occhiata al [QPrinter] (http://doc.trolltech.com/main-snapshot/qprinter.html) e la relativa documentazione. – Bart

risposta

10

È necessario utilizzare un oggetto QPrinter e un oggetto QPainter per stampare il testo sulla stampante.

Il codice seguente stamperà un testo di esempio su una stampante selezionata da una finestra di dialogo (QPrintDialog).

#include <QApplication> 
#include <QPrinter> 
#include <QPrintDialog> 
#include <QPainter> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    QString text = 
      "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n" 
      "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\n" 
      "enim ad minim veniam, quis nostrud exercitation ullamco laboris\n" 
      "nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor\n" 
      "in reprehenderit in voluptate velit esse cillum dolore eu fugiat\n" 
      "nulla pariatur. Excepteur sint occaecat cupidatat non proident,\n" 
      "sunt in culpa qui officia deserunt mollit anim id est laborum.\n"; 

    QPrinter printer; 

    QPrintDialog *dialog = new QPrintDialog(&printer); 
    dialog->setWindowTitle("Print Document"); 

    if (dialog->exec() != QDialog::Accepted) 
     return -1; 

    QPainter painter; 
    painter.begin(&printer); 

    painter.drawText(100, 100, 500, 500, Qt::AlignLeft|Qt::AlignTop, text); 

    painter.end(); 

    return 0; 
} 

Per stampare il contenuto del file di testo, si dovranno analizzare il file riga per riga per generare una QString con il contenuto. La QString generata può essere stampata come il testo di esempio nell'esempio.

Per ulteriori informazioni leggere la documentazione per QPrinter e QPainter

Problemi correlati