@nvlveu

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

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

tkinter:
5fa9034d20d0a563141098.png

Как получается у меня в PyQt5:
5fa903f99fa64872653976.png
  • Вопрос задан
  • 43 просмотра
Решения вопроса 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
Он даст возможность поглядеть на виджеты, и накидать простенькие формы\части форм. Как это все потом использовать можно поискать тут, на тостере
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы