Exemple #1
0
  protected void drawWidget(QPainter painter) {

    BurningApp burn = (BurningApp) parent;

    float width = size().width();
    float slid_width = burn.getCurrentWidth();
    float step = width / DIVISIONS;

    float till = (width / MAX_CAPACITY) * slid_width;
    float full = (width / MAX_CAPACITY) * FULL_CAPACITY;

    if (slid_width > FULL_CAPACITY) {

      painter.setPen(yellowColor);
      painter.setBrush(yellowColor);
      painter.drawRect(new QRectF(0, 0, full, PANEL_HEIGHT));
      painter.setPen(redColor);
      painter.setBrush(redColor);
      painter.drawRect(new QRectF(full + 1, 0, till - full, PANEL_HEIGHT));

    } else {
      if (slid_width > 0) {
        painter.setPen(yellowColor);
        painter.setBrush(yellowColor);
        painter.drawRect(new QRectF(0, 0, till, PANEL_HEIGHT));
      }
    }

    painter.setPen(new QColor(90, 90, 90));
    painter.setBrush(QBrush.NoBrush);
    painter.drawRect(0, 0, size().width() - 1, PANEL_HEIGHT - 1);

    QFont newFont = font();
    newFont.setPointSize(7);
    painter.setFont(newFont);

    for (int i = 1; i <= num.length; i++) {
      painter.drawLine(new QLineF(i * step, 1, i * step, LINE_WIDTH));

      QFontMetrics metrics = new QFontMetrics(newFont);

      int w = metrics.width(num[i - 1]);
      painter.drawText(new QPointF(i * step - w / 2, DISTANCE), num[i - 1]);
    }
  }
    private void drawLineTo(QPoint endPoint) {
      QPainter painter = new QPainter(image);
      painter.setPen(
          new QPen(
              myPenColor,
              myPenWidth,
              Qt.PenStyle.SolidLine,
              Qt.PenCapStyle.RoundCap,
              Qt.PenJoinStyle.RoundJoin));
      painter.drawLine(lastPoint, endPoint);
      modified = true;

      int rad = (myPenWidth / 2) + 2;
      update(new QRect(lastPoint, endPoint).normalized().adjusted(-rad, -rad, +rad, +rad));
      lastPoint = endPoint;

      painter.end();
    }