std::string Grid::saveToString() { TSVSerialiser tsv; tsv.writeLine("grid"); tsv << xEnabled() << xMinEnabled(); tsv << yEnabled() << yMinEnabled(); tsv << majPenX().color().name(); tsv << majPenX().style() - 1; tsv << majPenX().widthF(); tsv << minPenX().color().name(); tsv << minPenX().style() - 1; tsv << minPenX().widthF(); tsv << majPenY().color().name(); tsv << majPenY().style() - 1; tsv << majPenY().widthF(); tsv << minPenY().color().name(); tsv << minPenY().style() - 1; tsv << minPenY().widthF(); tsv << xZeroLineEnabled() << yZeroLineEnabled(); tsv << xAxis() << yAxis(); tsv << testRenderHint(QwtPlotItem::RenderAntialiased); return tsv.outputLines(); }
QString Grid::saveToString() { QString s = "grid\t"; s += QString::number(xEnabled())+"\t"; s += QString::number(xMinEnabled())+"\t"; s += QString::number(yEnabled())+"\t"; s += QString::number(yMinEnabled())+"\t"; s += majPenX().color().name()+"\t"; s += QString::number(majPenX().style() - 1)+"\t"; s += QString::number(majPenX().widthF())+"\t"; s += minPenX().color().name()+"\t"; s += QString::number(minPenX().style() - 1)+"\t"; s += QString::number(minPenX().widthF())+"\t"; s += majPenY().color().name()+"\t"; s += QString::number(majPenY().style() - 1)+"\t"; s += QString::number(majPenY().widthF())+"\t"; s += minPenY().color().name()+"\t"; s += QString::number(minPenY().style() - 1)+"\t"; s += QString::number(minPenY().widthF())+"\t"; s += QString::number(xZeroLineEnabled())+"\t"; s += QString::number(yZeroLineEnabled())+"\t"; s += QString::number(xAxis())+"\t"; s += QString::number(yAxis())+"\t"; s += QString::number(testRenderHint(QwtPlotItem::RenderAntialiased))+"\n"; return s; }
/*! \brief Draw the grid The grid is drawn into the bounding rectangle such that gridlines begin and end at the rectangle's borders. The X and Y maps are used to map the scale divisions into the drawing region screen. \param painter Painter \param mx X axis map \param my Y axis \param r Contents rect of the plot canvas */ void Grid::draw(QPainter *painter, const QwtScaleMap &mx, const QwtScaleMap &my, const QRect &r) const { double x_factor = (double)painter->device()->logicalDpiX()/(double)plot()->logicalDpiX(); double y_factor = (double)painter->device()->logicalDpiY()/(double)plot()->logicalDpiY(); // draw minor X gridlines QPen pen = minPen(); pen.setWidthF(pen.widthF() * x_factor); painter->setPen(pen); if (xMinEnabled()){ drawLines(painter, r, Qt::Vertical, mx, xScaleDiv().ticks(QwtScaleDiv::MinorTick)); drawLines(painter, r, Qt::Vertical, mx, xScaleDiv().ticks(QwtScaleDiv::MediumTick)); } // draw minor Y gridlines pen = d_min_pen_y; pen.setWidthF(pen.widthF() * y_factor); painter->setPen(pen); if (yMinEnabled()){ drawLines(painter, r, Qt::Horizontal, my, yScaleDiv().ticks(QwtScaleDiv::MinorTick)); drawLines(painter, r, Qt::Horizontal, my, yScaleDiv().ticks(QwtScaleDiv::MediumTick)); } // draw major X gridlines pen = majPen(); pen.setWidthF(pen.widthF() * x_factor); painter->setPen(pen); if (xEnabled()){ drawLines(painter, r, Qt::Vertical, mx, xScaleDiv().ticks (QwtScaleDiv::MajorTick)); } // draw major Y gridlines pen = d_maj_pen_y; pen.setWidthF(pen.widthF() * y_factor); painter->setPen(pen); if (yEnabled()){ drawLines(painter, r, Qt::Horizontal, my, yScaleDiv().ticks (QwtScaleDiv::MajorTick)); } }
/*! \brief Draw the grid The grid is drawn into the bounding rectangle such that gridlines begin and end at the rectangle's borders. The X and Y maps are used to map the scale divisions into the drawing region screen. \param painter Painter \param mx X axis map \param my Y axis \param r Contents rect of the plot canvas */ void Grid::draw(QPainter *painter, const QwtScaleMap &mx, const QwtScaleMap &my, const QRect &r) const { // draw minor X gridlines painter->setPen(minPen()); if (xMinEnabled()) { drawLines(painter, r, Qt::Vertical, mx, xScaleDiv().ticks(QwtScaleDiv::MinorTick)); drawLines(painter, r, Qt::Vertical, mx, xScaleDiv().ticks(QwtScaleDiv::MediumTick)); } // draw minor Y gridlines painter->setPen(d_min_pen_y); if (yMinEnabled()) { drawLines(painter, r, Qt::Horizontal, my, yScaleDiv().ticks(QwtScaleDiv::MinorTick)); drawLines(painter, r, Qt::Horizontal, my, yScaleDiv().ticks(QwtScaleDiv::MediumTick)); } // draw major X gridlines painter->setPen(majPen()); if (xEnabled()) { drawLines(painter, r, Qt::Vertical, mx, xScaleDiv().ticks (QwtScaleDiv::MajorTick)); } // draw major Y gridlines painter->setPen(d_maj_pen_y); if (yEnabled()) { drawLines(painter, r, Qt::Horizontal, my, yScaleDiv().ticks (QwtScaleDiv::MajorTick)); } }