如何不在QHBoxLayout中分隔小部件

时间:2014-07-12 01:19:50

标签: python pyqt

使用时:

layout = QtGui.QHBoxLayout()
layout.addWidget(QtGui.QPushButton())
layout.addWidget(QtGui.QPushButton())
layout.addWidget(QtGui.QPushButton())

按钮会自动在QHBoxLayout的宽度内间隔开。 相反,我希望按钮边缘相邻放置。 我试过用:

    layout.setContentsMargins(0, 0, 0, 0)
    layout.importLayout.setSpacing(0) 

但它对按钮间距没有影响。需要设置QHBoxLayout的哪个属性来覆盖自动间距?

2 个答案:

答案 0 :(得分:3)

你的方法已经是正确的方法。布局上没有内容边距以及布局上没有间距会使按钮非常接近,间距约为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_()

答案 1 :(得分:0)

我相信你希望pushButtons之间的间距可以忽略不计。

enter image description here

尝试使用layout.setSpacing(0)

self.horizontalLayout = QtGui.QHBoxLayout(self.widget)
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.pushButton = QtGui.QPushButton(self.widget)
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.horizontalLayout.addWidget(self.pushButton)
self.pushButton_2 = QtGui.QPushButton(self.widget)
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.horizontalLayout.addWidget(self.pushButton_2)
self.pushButton_3 = QtGui.QPushButton(self.widget)
self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
self.horizontalLayout.addWidget(self.pushButton_3)