使用时:
layout = QtGui.QHBoxLayout()
layout.addWidget(QtGui.QPushButton())
layout.addWidget(QtGui.QPushButton())
layout.addWidget(QtGui.QPushButton())
Run Code Online (Sandbox Code Playgroud)
按钮在 QHBoxLayout 的宽度内自动间隔开。相反,我希望将按钮并排放置。我曾尝试使用:
layout.setContentsMargins(0, 0, 0, 0)
layout.importLayout.setSpacing(0)
Run Code Online (Sandbox Code Playgroud)
但它对按钮间距没有影响。QHBoxLayout需要设置什么属性来覆盖自动间距?
你的方法已经是正确的。布局上没有内容边距以及布局上没有间距会使按钮非常靠近,间距约为 2 像素。样式表设置的负边距可以将按钮进一步组合在一起,但我不推荐它,因为它看起来不太好。
from PySide import QtGui
app = QtGui.QApplication([])
window = QtGui.QWidget()
window.setStyleSheet('QPushButton{margin-left:-1px;}') # remove this line if you want to have a tiny bit of spacing left
layout = QtGui.QHBoxLayout(window)
layout.setContentsMargins(0, 0, 0, 0)
layout.setSpacing(0)
layout.addWidget(QtGui.QPushButton('Button'))
layout.addWidget(QtGui.QPushButton('Button'))
layout.addWidget(QtGui.QPushButton('Button'))
layout.addWidget(QtGui.QPushButton('Button'))
layout.addWidget(QtGui.QPushButton('Button'))
layout.addWidget(QtGui.QPushButton('Button'))
window.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)