重写paintEvent事件,代码如下
void xx::paintEvent(QPaintEvent *event){
QPainter painter(this);
//绘制x,y轴,_maxWidth为y轴边距
painter.drawLine(QPoint(_maxWidth,20),QPoint(width(),20));
painter.drawLine(QPoint(_maxWidth, 20), QPoint(_maxWidth,height()));
//绘制刻度,_maxMinutes为x轴最大刻度
int num = (_maxMinutes - _minMinutes) / 5;
int interval = (width() - _maxWidth) / num;
for (int index = 0; index != num;++index){
painter.drawLine(QPoint(_maxWidth + index * interval, 20), QPoint(_maxWidth + index * interval, 15));
painter.drawText(QPoint(_maxWidth + index * interval, 10), QString::number(_minMinutes + index*5));
}
num = _dataMap.size();
interval = (height() - 20) / (num + 2);
//绘制数据_dataMap,QString(y轴坐标名称:起始时间-结束时间& 起始时间-结束时间)
QMap<int, QString>::iterator it = _dataMap.begin();
int index = 1;
for (; it != _dataMap.end()