Enhanced Progress Bar in Python with PyQt, PySide, and QtDesigner: PysideExtn [Modern GUI, Flat UI] Part 2

Posted by



In this tutorial, we will continue to work on creating a #4 round progress bar for a modern GUI using Python, Pyqt, Pyside, QtDesigner, and PysideExtn. This progress bar will have a flat design, making it suitable for a variety of modern applications.

In the first part of the tutorial, we covered the basics of setting up Pyqt, Pyside, and QtDesigner for creating a modern GUI. We also began creating the round progress bar by setting up the necessary widgets and layouts in QtDesigner.

In this second part of the tutorial, we will continue to build on our progress bar widget and add functionality to update the progress bar in real-time. We will also incorporate some styling to give our progress bar a sleek and modern look.

Step 1: Add functionality to update progress bar
First, open the .ui file in QtDesigner that contains the progress bar widget. In our case, the widget is a QProgressBar with a custom stylesheet applied to give it a round shape.

To update the progress bar in real-time, we need to create a function in our Python code that will update the value of the progress bar. We can do this by creating a signal-slot connection between the update function and the progress bar widget.

In your Python code, create a class that inherits from the class where the progress bar widget is defined. For example, if your progress bar widget is in a QMainWindow class, create a new class that inherits from QMainWindow.

In this new class, define a function that will update the value of the progress bar. You can name this function whatever you like, such as update_progress_bar. Inside this function, call the setValue method of the progress bar widget to set the new value.

Next, create a signal in the class that will trigger the update function. You can use a QTimer to emit this signal at regular intervals to update the progress bar in real-time.

Finally, connect the signal to the update function using the connect method. This will ensure that the progress bar updates whenever the signal is emitted.

Step 2: Add styling to the progress bar
To give our progress bar a modern and sleek look, we can add custom styling using Qt style sheets. In QtDesigner, select the progress bar widget and navigate to the Style Sheet section in the Property Editor.

Here, you can add custom styling to change the background color, border radius, and other properties of the progress bar. For example, you can set the background color to a flat color like #3498db, set the border radius to make the progress bar round, and adjust the height and width to suit your design.

You can also add animations or transitions using style sheets to give the progress bar a dynamic feel. For example, you can change the background color or border radius when the progress bar is updated to show progress more visually.

Step 3: Test and refine the progress bar
Once you have added functionality and styling to the progress bar, you can test it in your application to ensure everything is working as expected. Run your Python code and interact with the progress bar to see how it updates in real-time and how it looks with the custom styling applied.

If you encounter any issues or want to make further improvements, you can go back to QtDesigner to adjust the layout or styling of the progress bar. You can also refactor your Python code to improve the efficiency or readability of the progress bar functionality.

By following these steps, you can create a #4 round progress bar for a modern GUI using Python, Pyqt, Pyside, QtDesigner, and PysideExtn. This progress bar will have a flat design and real-time updating functionality, making it a stylish and functional element for your modern applications.