PyQt5 Tutorial 6 – PyQt5 Grid Layout using QGridLayout Class

Posted by


In this tutorial, we will delve into the PyQt5 grid layout and the QGridLayout class. Grid layout is a type of layout in PyQt5 that allows you to arrange widgets in rows and columns, similar to a table or grid format. This provides a more structured and organized way of positioning widgets in your GUI.

To get started, make sure you have PyQt5 installed on your system. You can install it using pip:

pip install PyQt5

Now, let’s create a simple PyQt5 application that demonstrates the usage of the QGridLayout class.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout

class GridExample(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        grid = QGridLayout()
        self.setLayout(grid)

        buttons = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'Clear', 'Submit']

        positions = [(i, j) for i in range(3) for j in range(4)]

        for position, text in zip(positions, buttons):
            button = QPushButton(text)
            grid.addWidget(button, *position)

        self.setGeometry(100, 100, 300, 300)
        self.setWindowTitle('Grid Layout Example')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = GridExample()
    sys.exit(app.exec_())

In the above code, we have defined a GridExample class that inherits from QWidget. In the initUI method, we create a QGridLayout object and set it as the layout for our main widget (self.setLayout(grid)).

We then create a list of button labels and positions for our grid layout. We use a nested loop to iterate over the positions and create QPushButton widgets with the corresponding labels. We add each button to the grid layout using grid.addWidget(button, *position).

Finally, we set the geometry of the main window and display it using self.show().

When you run the above code, you should see a window with buttons arranged in a 3×4 grid layout.

You can further customize the grid layout by setting column and row spans for widgets, alignment, spacing, and stretching. The QGridLayout class provides methods to achieve these customizations.

I hope this tutorial helps you understand how to use the PyQt5 grid layout and the QGridLayout class in your GUI applications. Feel free to experiment with different layouts and configurations to create visually appealing and user-friendly interfaces. Thank you for reading!

0 0 votes
Article Rating

Leave a Reply

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@Eddlandos
2 days ago

I can hear the sound of you pounding your keys like a mad man, I need a new ear drum.

@dharmang
2 days ago

Things to improve in this video.

1. audio quality
2. first tell the audience what you are going to do instead of typing and saying.
3. zoom on the area you want to focus.

Hope this helps

@omchavan5050
2 days ago

Sir English to Hindi language transfer Youer videos plzzz
Youer language English , Hindi

3
0
Would love your thoughts, please comment.x
()
x