Re: Scale color using Qwt::
Brought to you by:
rathmann
From: Gerard V. <gve...@gr...> - 2004-03-14 20:11:05
|
On Sat, 13 Mar 2004 15:17:50 -0800 (PST) qw...@ds... wrote: > The program I am working on needs to be able to draw > a QwtPlot subclass widget onto a QPixmap to be able > to double-buffer and draw things onto the graph. I have > about 252 of these plots to draw and use. > > I determined that the following code placed in this plotter > class would print onto a QPainter: > > print (painter, plotRect); > > (I did read in the mailing list of the Qpixmap::grabWidget() > way of doing this, but it turned out to be really slow.) > > The problem I faced with this approach (print method) > is that the background I chose is black and the routine > printScales() that print() calls also paints the scales > in black by default with this code (qwt_plot_print.cpp): > > #if 1 > painter->setPen(Qt::black); // acisColor ???? > #endif > > That_s from 4.2rc1. So I checked the CVS and the only > change was in the comment. > > It would be nice if we had control over the color that the > scales are printed somehow. I imagine this would not > be terribly difficult to implement as part of > the QwtScale class, using a call similar to setTitleColor(), > maybe setScaleColor() or setPen() -- this, in my mind, > includes the tick marks, and major tick labels). > > What do you think? > This problem has been recently reported and is supposed to be fixed in CVS. Printing of the widget background color can be enabled by passing a suitable QwtPrintFilter. I quote from a list of changes sent to me by Uwe: - QwtPlotPrintFilter::PrintWidgetBackground introduced, QwtPlotPrintFilter::PrintBackground renamed to QwtPlotPrintFilter::PrintCanvasBackground If you set the print filter options so that widget background printing is enabled, it should work (it is implemented but I did not test it). A workaround for people who do not want to use CVS is to fill the pixmap with for instance a white color before passing it to a print() function. Gerard |