首先,声明QCustomPlot之后在构造函数里面实现
如果我直接重写MainWindow::paintevent(QPaintevent *event)
那么这个时候我绘制出来的图形会被mcustomplot覆盖
效果如下:
因为我们现在重写的paintevent事件是属于MainWindow这个类
所以QPainter绘制出来的图像是在ui界面上,而在界面上面添加的任何控件都会将其覆盖
这个时候我采用的做法是继承QCustomPlot类然后重写QCustomPlot类的paintevent
因为我想实现的效果是在图表上面点击释放鼠标会绘制一个矩形
所以我也需要重写鼠标事件
代码如下:
void customPlot::paintEvent(QPaintEvent *event)
{
//调用父类的paintEvent使QCustomPlot可以被重绘
QCustomPlot::paintEvent(event);
//在父类重绘完的基础上进行绘制
//新建painter
QPainter painter(this);
//painter设置Pen
painter.setPen(QPen(QColor(200,255,222)));
QColor color(1