LINUX.ORG.RU

Ограниечние размера в PyQt5, QVBoxLayout

 ,


0

1

Доброе время суток.

Не могу понять как в PyQt5 делать ограничения размеров в лэйаутах. QtDesigner делает мне все отлично, но когда делаю руками, повторяя все что делает дизайнер - нихрена не работает! Более того бывало что вдруг заработает а потом опять не рабоатет. Магия какаято!

Объясните плиз как сделать вот такую штуку:

Картинка

То есть есть картинка под ней надпись. Эти объекты не должны изменяться при растяжении окна.

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

Файл с интерфейсом:


# -*- coding: utf-8 -*-

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def setupUi(self, Form):
        self.title = 'Test'
        self.left = 10
        self.top = 10
        self.width = 300
        self.height = 300
        Form.setWindowTitle(self.title)
        Form.setGeometry(self.left, self.top, self.width, self.height)

        self.verticalLayout = QtWidgets.QVBoxLayout(Form)
        # self.verticalLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)

        self.logo_lable = QtWidgets.QLabel(Form)
        pixmap = QtGui.QPixmap('image.jpeg')
        self.logo_lable.setMaximumHeight(pixmap.height())
        self.logo_lable.setPixmap(pixmap)
        # self.logo_lable.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
        self.verticalLayout.addWidget(self.logo_lable)

        self.menu_path_label = QtWidgets.QLabel(Form)
        self.menu_path_label.setText("Menu Path")
        self.menu_path_label.setMaximumHeight(self.menu_path_label.height())
        self.menu_path_label.setMinimumHeight(self.menu_path_label.height())
        self.verticalLayout.addWidget(self.menu_path_label)


        self.horisontalLayout = QtWidgets.QHBoxLayout()
        self.buttons_layout = QtWidgets.QVBoxLayout()
        self.catalog_layout = QtWidgets.QVBoxLayout()

        self.verticalLayout.addLayout(self.horisontalLayout)
        self.horisontalLayout.addLayout(self.buttons_layout)
        self.horisontalLayout.addLayout(self.catalog_layout)

        self.pushButton_00 = QtWidgets.QPushButton(Form)
        self.pushButton_01 = QtWidgets.QPushButton(Form)
        self.pushButton_02 = QtWidgets.QPushButton(Form)
        self.pushButton_03 = QtWidgets.QPushButton(Form)
        self.pushButton_04 = QtWidgets.QPushButton(Form)

        self.buttons_layout.addWidget(self.pushButton_00)
        self.buttons_layout.addWidget(self.pushButton_01)
        self.buttons_layout.addWidget(self.pushButton_02)
        self.buttons_layout.addWidget(self.pushButton_03)
        self.catalog_layout.addWidget(self.pushButton_04)


Ну и как запускаю:


import sys
from PyQt5.QtWidgets import QApplication, QDialog
from ui import *


class App(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = Ui_Form()
        self.ui.setupUi(self)


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

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.