![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
qx87 |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 24.9.2015 Пользователь №: 4456 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Использую Qt 5.4.
Задача в том, что нужно распечатать график (QwtPlot из библиотеки Qwt) и на следующей странице - содержимое QTextBrowser (производный объект от QTextEdit). И чтобы при этом работал предпросмотр через QPrintPreviewDialog. Проблема в том, что для печати графика клас QwtPlotRenderer требует объект QPainter. (Там есть методы, где подойдёт и QPrinter, но мне нужен именно этот - для указания области вывода) А для печати QTextBrowser/QTextEdit требуется QPrinter (см. последний абзац). Поэтому если использовать такой код
то в stderr появляется сообщение Цитата QPainter::begin: A paint device can only be painted by one painter at a time. а на печать попадает только график и пустая страница. А если поменять две последние строки местами:
тогда вызов printer->newPage() возвращает false, в stderr появляется Цитата QPrinter::metric: Invalid metric command на предпросмотре появляется только текст из QTextBrowser, а мой виртуальный принтер doPdf вызывается два раза и создаёт два файла pdf: с графиком и с текстом. Как разрешить проблему? |
|
|
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Видится два варианта:
1. Нарисовать документ, используя пэинтер: http://doc.qt.io/qt-5/qtextdocument.html#drawContents 2. Вставить нарисованный график в документ и распечатать документ целиком http://doc.qt.io/qt-5/qtextcursor.html#insertImage-4 |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 15:54 |