题
我有一个QTableWidget
,6个生成古代码代码,我想以这种方式将它们放在布局中
瓶之间的小间距
但使用QPushBotton
使它看起来像这个
代码:
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)
.
我尝试了QGridLayout
,但它没有帮助!
我也使用了Botton组的setRowStretch(i, 0), setVerticalSpacing(0)
和QGridLayout
,它有效,但所有按钮都在底部对齐,尽管我为每个元素使用了QVBoxLayout
以及布局
解决方案
你只需要添加一个 spacer 在您的布局中:
qspaceritem 类在布局中提供空格。
verticalSpacer = QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Expanding)
tab_Memory_buttons.addItem(verticalSpacer, 6, 0, QtCore.Qt.AlignTop)
.
布局中的任何额外空间都会被垫片“吸收”,这将保持其他小部件对齐。
其他提示
在删除按钮下方添加QLabel(“”)。这使它们像你想要的方式一样。
不隶属于 StackOverflow