Доброе время суток.
Не могу понять как в 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_())