@nvlveu

Как располагать виджеты сверху в QGridLayout?

Здравствуйте.
Как располагать виджеты сверху в QGridLayout, аналогично методу .pack в tkinter?

tkinter:
5fa9034d20d0a563141098.png

Как получается у меня в PyQt5:
5fa903f99fa64872653976.png
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
@bbkmzzzz
Добавить QSpacerItem в самый низ
import sys
from PySide2.QtWidgets import QApplication, QMainWindow, QGridLayout, QPushButton, QWidget, QSpacerItem, QSizePolicy


class Main(QMainWindow):
    def __init__(self):
        super(Main, self).__init__()
        centralWidget = QWidget(self)
        self.setCentralWidget(centralWidget)
        
        # добавляем компоновщик-сетку
        self.v_grid = QGridLayout(centralWidget)

        # добавляем кнопки
        for i in range(5):
            self.v_grid.addWidget(QPushButton(f"Button {i}"))
        
        # Добавляем QSpacer, политики размера нужны, так как по умолчанию они Fixed
        self.v_grid.addItem(QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding))


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

А вообще, потыкайте Qt Designer, он идет в поставке Qt оберток
тут поискать для Pyside2: $PyInterpreterDirectory$\Lib\site-packages\PySide2\designer.exe
Он даст возможность поглядеть на виджеты, и накидать простенькие формы\части форм. Как это все потом использовать можно поискать тут, на тостере
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы