如何在单击按钮时在Qt中打印文本

时间:2013-10-02 01:26:05

标签: c++ qt qpainter qprinter

我一直在阅读QPrinter和QPrintDialog的Qt文档,但我无法想象如何在textEdit字段中打印内容。

以下是我一直在尝试的代码,当然这些代码不起作用。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QtPrintSupport/QPrinter>
#include <QtPrintSupport/QPrintDialog>
#include <QPainter>


void MainWindow::on_pushButton_clicked()
{
    QString textFromField = ui->textEdit->toPlainText();

    QPrinter printer;

    QPrintDialog *printDialog = new QPrintDialog(&printer, this);

    printDialog->setWindowTitle("Print Document");

    if(printDialog->exec() != QDialog::Accepted)
    {

    }

    QPainter painter;
    painter.begin(&printer);
    painter.drawText(100, 100, 500, 500,Qt::AlignLeft | Qt::AlignTop, textFromField);
    painter.end();
}

这是我运行时获得的输出。

  

: - 1:警告:找不到选项的目录   '-F / Applications / Qt5.1.0 // 5.1.0 / clang_64 / qtbase / lib': - 1:错误:   找不到架构x86_64的符号

知道我做错了什么吗?我想要的只是在textEdit字段中打印内容。

1 个答案:

答案 0 :(得分:1)

QTextEdit只是QTextDocument的编辑器,QTextDocument是一个强大的类,知道如何打印它的内容。

QTextDocument *doc = ui->textEdit->document();
doc->print(&printer);