Я читал документацию Qt для QPrinter и QPrintDialog, но я не могу понять, как напечатать содержимое в поле 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.
QTextEdit — это просто редактор для QTextDocument, который является мощным классом, который знает, как напечатать его содержимое.
QTextDocument *doc = ui->textEdit->document();
doc->print(&printer);
Других решений пока нет …