0

我一直在阅读 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 字段中打印内容。

4

1 回答 1

1

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

QTextDocument *doc = ui->textEdit->document();
doc->print(&printer);
于 2013-10-02T08:22:29.620 回答