Russian Qt Forum
Ноябрь 23, 2024, 07:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вывод на печать из qwtplot [РЕШЕНО]  (Прочитано 2577 раз)
QPeter
Гость
« : Апрель 14, 2014, 11:43 »

Добрый день, подскажите пожалуйста как вывести на печать содержимое qwtplot, а то гугление не привело ни к каким успешным результатам. Непонимающий


Вообще в приложении на печать помимо содержимого qwtplot, выводится содержимое textbrowser и оно реализовано так:
Код:
void Form::on_pbPrintResult_clicked()
{
     QPrinter printer(QPrinter::HighResolution);
     QPrintDialog *dlg = new QPrintDialog(&printer, this);
     if (ui->textBrowser->textCursor().hasSelection())
         dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection);
     dlg->setWindowTitle(tr("Print Document"));
     if (dlg->exec() == QDialog::Accepted) {
         ui->textBrowser->print(&printer);
     }
     delete dlg;
}

« Последнее редактирование: Апрель 15, 2014, 15:00 от QPeter » Записан
VanDerSam
Гость
« Ответ #1 : Апрель 14, 2014, 21:14 »

Здравствуйте. В исходных кодах Qwt (каталог examples) есть пример bode. В нём имеются средства печати графика.
Записан
QPeter
Гость
« Ответ #2 : Апрель 15, 2014, 01:52 »

Спасибо большое, за то что откликнулись...разобрался.)

Вот код функции печати на будущее, мало ли кому нужно будет, чтоб не искали:
Код:
     QPrinter printer( QPrinter::HighResolution );

     QString docName = "График";
     if ( !docName.isEmpty() )
     {
         docName.replace ( QRegExp ( QString::fromLatin1 ( "\n" ) ), tr ( " -- " ) );
         printer.setDocName ( docName );
     }

     printer.setCreator( "Bode example" );
     printer.setOrientation( QPrinter::Landscape );

     QPrintDialog dialog( &printer );
     if ( dialog.exec() )
     {
         QwtPlotRenderer renderer;

         if ( printer.colorMode() == QPrinter::GrayScale )
         {
             renderer.setDiscardFlag( QwtPlotRenderer::DiscardBackground );
             renderer.setDiscardFlag( QwtPlotRenderer::DiscardCanvasBackground );
             renderer.setDiscardFlag( QwtPlotRenderer::DiscardCanvasFrame );
             renderer.setLayoutFlag( QwtPlotRenderer::FrameWithScales );
         }

         renderer.renderTo( ui->wgtResult, printer );
     }
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 20.