【问题标题】:QGridLayout remove spacingQGridLayout 移除间距
【发布时间】:2014-07-23 05:01:12
【问题描述】:

我有一个 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 Group 使用了 QGridLayoutQVBoxLayout,它可以工作,但所有按钮都在底部对齐,尽管我为每个元素和布局使用了 AlignTop

【问题讨论】:

    标签: qt pyqt qt5 pyside


    【解决方案1】:

    您只需在布局中添加 Spacer

    QSpacerItem 类在布局中提供空白空间。

    verticalSpacer = QSpacerItem(40, 20, QSizePolicy.Minimum, QSizePolicy.Expanding)
    tab_Memory_buttons.addItem(verticalSpacer, 6, 0, QtCore.Qt.AlignTop)
    

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

    【讨论】:

      【解决方案2】:

      在删除按钮下方添加一个 Qlabel("")。这使它们按照您想要的方式进行。

      【讨论】:

      • @FinalContest @user3051668 我认为如果我使用tab_Memory_layout.addWidget(self.MemoryTable, 0, 0, -1, 1),这可能会起作用,然后对于我设置rowspan = 1columnspan = 1的所有按钮,然后添加Qlabel("")并设置rowspan = 2和@ 987654326@ 或其他什么,它会很奇怪地工作!
      • @BenIshak:不要使用它。这是一个大黑客。 :) 正确的方法是使用 Tay2510 所写的间隔项目。
      • 大声笑,我多年来一直使用这种奇怪的方法,但它总是有效:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 2012-11-04
      • 2013-04-29
      • 2012-09-04
      相关资源
      最近更新 更多