如何从左上角开始向网格布局添加小部件

ris*_*s3d 5 python layout pyqt

我在 Qt Designer 中创建了一个 UI 并将其转换为 python:

在此处输入图片说明

在空白区域中,我添加了一个滚动区域和一个网格布局来对齐我的按钮。

每次按下“CreatePose”按钮时,我都需要从左上角开始向 gridlayout 添加一个带有图标的按钮。现在它将它添加到网格布局的中心。

self.ui.PoseBtn_GridLayout.setColumnMinimumWidth(4,4)
self.button = QtGui.QPushButton('')
self.button.setIcon(self._icon)
self.button.setIconSize(QtCore.QSize(128, 128))
self.button.setMinimumSize(QtCore.QSize(128, 128))
self.button.setMaximumSize(QtCore.QSize(128, 128))
self.ui.PoseBtn_GridLayout.addWidget(self.button)
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

小智 1

看看用此替换您发布的代码是否适合您:

self.ui.PoseBtn_GridLayout.setColumnMinimumWidth(4,4)

spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.ui.PoseBtn_GridLayout.addItem(spacerItem, 1, 1, 1, 1)

spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.ui.PoseBtn_GridLayout.addItem(spacerItem1, 1, 0, 1, 1)

self.button = QtGui.QPushButton('')
self.button.setIcon(self._icon)
self.button.setIconSize(QtCore.QSize(128, 128))
self.button.setMinimumSize(QtCore.QSize(128, 128))
self.button.setMaximumSize(QtCore.QSize(128, 128))
self.ui.PoseBtn_GridLayout.addWidget(self.button, 0, 0, 1, 1)
Run Code Online (Sandbox Code Playgroud)

编辑

这就是你应该如何显示你的小部件以获得预期结果,检查对象检查器,基本上你需要一个QWidget带有网格布局的另一个QWidget也带有网格布局和 2QSpaceItem的:

Qt 设计器截图