我有一个QTableWidget
和6 QPushBotton
我想以这种方式将它们放置在布局中
瓶子之间只有很小的间距
但是使用QGridLayout
使其看起来像这样
码:
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)
我尝试了
setRowStretch(i, 0), setVerticalSpacing(0)
,但没有帮助!我还对Bottons组使用了
QGridLayout
和QVBoxLayout
,虽然我对每个元素和布局使用了AlignTop
,但它的所有按钮都在底部对齐了 最佳答案
您只需要在布局中添加Spacer即可:
QSpacerItem类在布局中提供空白。
verticalSpacer = QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Expanding)
tab_Memory_buttons.addItem(verticalSpacer, 6, 0, QtCore.Qt.AlignTop)
布局中的任何多余空间都将被分隔符“吸收”,这将使其他小部件保持对齐。
关于qt - QGridLayout删除间距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24005346/