首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QGridLayout移除间距

QGridLayout移除间距
EN

Stack Overflow用户
提问于 2014-06-03 00:25:29
回答 2查看 4.6K关注 0票数 2

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

只是Bottons之间的小间隔

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

代码:

代码语言:javascript
复制
    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使用了QGridLayoutQVBoxLayout,它可以工作,但是所有的按钮都在底部对齐,尽管我对每个元素和布局使用了AlignTop

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-03 01:39:13

只需在布局中添加一个间隔器

QSpacerItem类在布局中提供空白。

代码语言:javascript
复制
verticalSpacer = QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Expanding)
tab_Memory_buttons.addItem(verticalSpacer, 6, 0, QtCore.Qt.AlignTop)

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

票数 5
EN

Stack Overflow用户

发布于 2014-06-03 06:12:41

在“删除”按钮下面添加一个Qlabel("")。这就像你想要的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24005346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档