progressbar.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "progressbar.h"
  2. #include <QPixmap>
  3. #include <QPainter>
  4. ProgressBar::ProgressBar(QWidget *parent) : QWidget(parent), _progress(26)
  5. {
  6. }
  7. void ProgressBar::moveEvent(QMoveEvent*) {
  8. repaint();
  9. }
  10. void ProgressBar::resizeEvent(QResizeEvent*) {
  11. repaint();
  12. }
  13. void ProgressBar::paintEvent(QPaintEvent *pe)
  14. {
  15. int widWidth = width();
  16. int widHeight = height();
  17. QPixmap pixmap_bar;
  18. pixmap_bar.load(":/buttons/progressbar.png");
  19. pixmap_bar = pixmap_bar.scaled(widWidth, widHeight, Qt::KeepAspectRatioByExpanding);
  20. QPixmap pixmap_progress;
  21. pixmap_progress.load(":/buttons/progressbar_chunk.png");
  22. pixmap_progress = pixmap_progress.scaled(widWidth, widHeight, Qt::KeepAspectRatioByExpanding);
  23. QPainter paint(this);
  24. QRectF progress_position = QRectF(0, 0, widWidth * _progress / 100, widHeight);
  25. paint.drawPixmap(0, 0, widWidth, widHeight, pixmap_bar);
  26. paint.drawPixmap(progress_position, pixmap_progress, progress_position);
  27. QWidget::paintEvent(pe);
  28. }
  29. void ProgressBar::setProgress(int progress) {
  30. _progress= progress;
  31. }
  32. int ProgressBar::getProgress() const {
  33. return _progress;
  34. }