Porting from Qwt5 to Qwt6: QwtMetricsMap
Brought to you by:
rathmann
|
From: <ams...@we...> - 2019-09-04 08:25:35
|
<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Hi all,</div>
<div> </div>
<div>I am porting an old application from Qwt5 to Qwt6 and I don't know how to port the followin code as in Qwt6, the class QwtMetricsMap has disappeared:</div>
<div> </div>
<div>
<pre>void printScale(const QwtScaleWidget* widget,</pre>
<pre> const QString& filename)</pre>
<pre>{</pre>
<pre> // save the label as PDF</pre>
<pre> QPrinter printer(QPrinter::HighResolution);</pre>
<pre> printer.setOutputFormat(QPrinter::PdfFormat);</pre>
<pre> printer.setOutputFileName(filename);</pre>
<pre> printer.setPageMargins(0, 0, 0, 0, QPrinter::DevicePixel); // no margins</pre>
<pre> QPainter painter;</pre>
<pre> painter.begin(&printer);</pre>
<pre> QwtMetricsMap oldmap = QwtPainter::metricsMap();</pre>
<pre> QwtPainter::setMetricsMap(widget, painter.device()); // scale accordingly</pre>
<pre> painter.end();</pre>
<pre> printer.setPaperSize(QSizeF(QwtPainter::metricsMap().layoutToDevice(widget->size())), QPrinter::DevicePixel);</pre>
<pre> painter.begin(&printer);</pre>
<pre> printScale(&painter, widget, widget->rect());</pre>
<pre> painter.end();</pre>
<pre> QwtPainter::setMetricsMap(oldmap);</pre>
<pre>}</pre>
<pre> </pre>
<div>How can I set a useful paper size and initialise the painter to print the scale onto a PDF?</div>
<div> </div>
<div>Thanks,</div>
<div>Annemarie</div>
<div> </div>
</div></div></body></html>
|