PyQt5 - Different sized padding Progress Bar

PyQt5 - Different sized padding Progress Bar

If you want to create a custom QProgressBar in PyQt5 with different sized paddings, you can subclass QProgressBar and override its paintEvent method to customize the rendering.

Here's an example of how to do this:

  • Install PyQt5:
pip install pyqt5 
  • Use the custom QProgressBar:
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QProgressBar, QVBoxLayout, QWidget from PyQt5.QtGui import QPainter, QBrush, QColor from PyQt5.QtCore import Qt class PaddedProgressBar(QProgressBar): def __init__(self, *args, **kwargs): super(PaddedProgressBar, self).__init__(*args, **kwargs) def paintEvent(self, event): painter = QPainter(self) # Background painter.setBrush(QBrush(QColor(200, 200, 200))) painter.drawRect(0, 0, self.width(), self.height()) # Progress bar with custom padding left_padding = 10 right_padding = 50 top_padding = 5 bottom_padding = 5 progress_width = ((self.width() - left_padding - right_padding) * self.value()) // self.maximum() painter.setBrush(QBrush(QColor(50, 150, 50))) painter.drawRect(left_padding, top_padding, progress_width, self.height() - bottom_padding - top_padding) painter.end() class MainWindow(QMainWindow): def __init__(self): super().__init__() central_widget = QWidget() layout = QVBoxLayout() self.progress_bar = PaddedProgressBar() self.progress_bar.setMaximum(100) self.progress_bar.setValue(50) layout.addWidget(self.progress_bar) central_widget.setLayout(layout) self.setCentralWidget(central_widget) self.resize(400, 200) app = QApplication(sys.argv) window = MainWindow() window.show() app.exec_() 

In this example, the PaddedProgressBar class has custom paddings defined in its paintEvent method. The MainWindow class showcases the custom progress bar. Adjust the padding values in the paintEvent method of PaddedProgressBar as required.


More Tags

sweetalert2 gsm office-interop asp.net-core-3.0 statusbar user-interface google-contacts-api bitarray sql tsx

More Programming Guides

Other Guides

More Programming Examples