Найти тему
programmer's notes (python and more)

Программирование на языке Python. Библиотека PyQT5. Макеты и масштабирование (QGridLayout)

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Сеточный макет QGridLayout

В предыдущей статье я рассматривал вопрос масштабирования элементов в окне. Но в pyqt5 есть и отдельный класс, который упрощает масштабирование. Результат будет в принципе такой-же как в предыдущей статье. Кстати класс QGridLayout (сеточный макет) мы уже знаем из статьи.

Ниже представлена программа, где используется QGridLayout (см. Рисунок1 и Рисунок 2).

Скриншот программы. Полный текст программы см. ниже по ссылке
Скриншот программы. Полный текст программы см. ниже по ссылке
primer248.py

Пояснение к программе

  • Обращаю внимание на строки
    grid = QGridLayout()
    self.setLayout(grid)

    Они создают макет и присоединяет макет к окну. После этого всё готово к использовании макета.
  • Сеточный макет состоит из клеток, которые нумеруются двумя индексами: i, j - номер строки и номер столбца. Наша задача распределить элементы по клеткам, при этом и размер элементов и размер окна автоматически настраивается средствами QGridLayout.
  • QGridLayout.addWidget() - метод помещения элемента в указанную клетку. Первым параметром указывается объект, второй и третий - обозначают клетку. Есть ещё третий и четвертый, которые указывают сколько строк будет занимать элемент (для кнопок QPushButton и строк редактирования QLineEdit это не работает) и сколько столбцов. Как видно из текста и рисунков 1, 2 можно оставлять пустые клетки.
Рисунок 1.
Рисунок 1.
Рисунок 2.
Рисунок 2.

Ну, пока всё!

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Что вы мне макеты подсовываете, дайте мне рабочий экземпляр
Что вы мне макеты подсовываете, дайте мне рабочий экземпляр