qt绘制甘特图

重写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()
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值