Design Horizontal and Vertical Layouts for Your PyQT Desktop App

Posted by


In this tutorial, we will learn how to create a desktop application using PyQT which can display both horizontal and vertical layouts. PyQT is a set of Python bindings for the Qt application framework that allows you to create cross-platform GUI applications.

To get started with PyQT, you’ll need to have Python and PyQT installed on your system. If you haven’t already installed PyQT, you can do so by running the following command in your terminal:

pip install pyqt5

Once you have PyQT installed, you can start creating your desktop application. Open up your favorite Python editor (such as PyCharm, VS Code, or Sublime Text) and create a new Python file (e.g., main.py).

First, let’s import the necessary libraries:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QHBoxLayout, QLabel, QWidget

Next, we’ll create a class for our main window and set up the layout:

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("Horizontal & Vertical Layout Example")
        self.setGeometry(100, 100, 400, 200)

        layout = QVBoxLayout()
        layout.addWidget(QLabel("This is a Vertical Layout"))

        h_layout = QHBoxLayout()
        h_layout.addWidget(QLabel("This is a Horizontal Layout"))
        h_layout.addWidget(QLabel("with two labels"))

        layout.addLayout(h_layout)

        widget = QWidget()
        widget.setLayout(layout)
        self.setCentralWidget(widget)

In this code snippet, we created a QMainWindow instance and added a QVBoxLayout to it. We then added a QLabel to the QVBoxLayout. Next, we created a QHBoxLayout and added two QLabel widgets to it. Finally, we added the QHBoxLayout to the QVBoxLayout and set the central widget of the main window to the layout.

To run the application, we need to create an instance of QApplication and show our main window:

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyApp()
    window.show()
    sys.exit(app.exec_())

Save the file and run it using your Python interpreter. You should see a window with a vertical layout containing a label and a horizontal layout containing two labels.

That’s it! You have successfully created a desktop application using PyQT with both horizontal and vertical layouts. You can further customize the application by adding more widgets to the layouts or styling them using CSS.

I hope this tutorial was helpful in getting you started with PyQT for creating desktop applications. If you have any questions or run into any issues, feel free to ask for help on online forums or communities dedicated to PyQT development. Happy coding!