我一直在阅读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字段中打印内容。
答案 0 :(得分:1)
QTextEdit只是QTextDocument的编辑器,QTextDocument是一个强大的类,知道如何打印它的内容。
QTextDocument *doc = ui->textEdit->document();
doc->print(&printer);