需求

qt chart 在打印的时候,因为缩放的问题,导致图标不清晰,需要能够更加清晰一些。

解决

chart 其实主要就是几个部分: 曲线,坐标轴及文字,辅助线

曲线

主要就是加粗即可,使用 QPen, 修改 width 即可。

QPen  pen;
pen.setStyle(Qt::SolidLine);  //Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine
pen.setWidth(2);
pen.setColor(Qt::red);
series0->setPen(pen);       //序列series0的线条设置

坐标轴

为了方便修改也使用 QPen

QPen  axis_pen;
axis_pen.setStyle(Qt::SolidLine);  //Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine
axis_pen.setWidth(3);
axis_pen.setColor(Qt::black);

axisX->setLinePen(axis_pen);

辅助线

辅助线分为两种,一种是文字对应的辅助线,另外一种是文字之间的辅助线.

QPen  grid_pen;
grid_pen.setStyle(Qt::DashLine);  //Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine
grid_pen.setWidth(2);
grid_pen.setColor(Qt::darkGray);

QPen  minor_grid_pen;
minor_grid_pen.setStyle(Qt::DotLine);  //Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine
minor_grid_pen.setWidth(1);
minor_grid_pen.setColor(Qt::darkGray);

axisX->setGridLinePen(grid_pen);
axisX->setMinorGridLinePen(minor_grid_pen);

坐标轴文字

文字一般就是两种方法: 加粗和加大

QFont axis_font = axisX->labelsFont();
axis_font.setBold(true);
int axis_font_point_size = axis_font.pointSize();
axis_font.setPointSize(axis_font_point_size * 2);
axisX->setLabelsFont(axis_font);

参考