Qt QGridLayout删除间距

Qt QGridLayout删除间距,qt,pyqt,qt5,pyside,Qt,Pyqt,Qt5,Pyside,我有一个QTableWidget和6个QPushBotton我想用这种方式把它们放到一个布局中 两个僵尸之间只有很小的间隔 但是使用QGridLayout使其看起来像这样 代码: 我尝试了setRowStretch(I,0)和setVerticalSpacing(0),但没有效果 我还为Bottons组使用了QGridLayout和QVBoxLayout,虽然我为每个元素和布局使用了AlignTop,但所有按钮都在底部对齐,您只需在布局中添加一个: 类在布局中提供空白空间 布局中的任何额外

我有一个
QTableWidget
和6个
QPushBotton
我想用这种方式把它们放到一个布局中

两个僵尸之间只有很小的间隔

但是使用
QGridLayout
使其看起来像这样

代码:

我尝试了
setRowStretch(I,0)和setVerticalSpacing(0)
,但没有效果


我还为Bottons组使用了
QGridLayout
QVBoxLayout
,虽然我为每个元素和布局使用了
AlignTop
,但所有按钮都在底部对齐,您只需在布局中添加一个

类在布局中提供空白空间


布局中的任何额外空间都将被分隔符“吸收”,这将使其他小部件保持对齐。

在删除按钮下方添加一个Qlabel(“”)。这就像你想要的一样。我想如果我使用
选项卡\u Memory\u layout.addWidget(self.MemoryTable,0,0,-1,1)
,那么对于所有按钮,我设置
行span=1
列span=1
,然后添加
Qlabel(“”)
并设置
rowspan=2
column=1
或其他任何设置,它将异常工作@贝尼沙克:就是不要用它。这是一个大难题正确的方法是使用Tay2510编写的间隔项。哈哈,我多年来一直使用这种奇怪的方法,而且总是有效:)
    tab_Memory_layout = QtGui.QGridLayout()
    tab_Memory_layout.setVerticalSpacing(0)
    tab_Memory_layout.setAlignment(QtCore.Qt.AlignTop)
    tab_Memory_layout.addWidget(self.MemoryTable, 0, 0)
    tab_Memory_buttons = QtGui.QGridLayout()
    tab_Memory_buttons.setSpacing(5)
    tab_Memory_buttons.addWidget(self.pushButton_add_memory, 0, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_up_memory, 1, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_down_memory, 2, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_top_memory, 3, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_bottom_memory, 4, 0, QtCore.Qt.AlignTop)
    tab_Memory_buttons.addWidget(self.pushButton_delete_memory, 5, 0, QtCore.Qt.AlignTop)
    tab_Memory_layout.addLayout(tab_Memory_buttons, 0, 1)
    self.tab_Memory.setLayout(tab_Memory_layout)
verticalSpacer = QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Expanding)
tab_Memory_buttons.addItem(verticalSpacer, 6, 0, QtCore.Qt.AlignTop)