Код: Выделить всё
layoutOne = QHBoxLayout()
oneA = QRadioButton("Option 1A")
oneB = QRadioButton("Option 1B")
layoutOne.addWidget(oneA)
layoutOne.addWidget(oneB)
#layoutOne.addStretch(1)
#layoutOne.addSpacing(100)
groupOne = QButtonGroup(self)
groupOne.addButton(oneA)
groupOne.addButton(oneB)
groupOne.setExclusive(True)
layoutTwo = QHBoxLayout()
two = QCheckBox("Checkbox")
layoutTwo.addWidget(two)
two.setChecked(True)
layoutThree = QHBoxLayout()
threeA = QRadioButton("Option 3A")
threeB = QRadioButton("Option 3B")
threeC = QRadioButton("Option 3C")
layoutThree.addWidget(threeA)
layoutThree.addWidget(threeB)
layoutThree.addWidget(threeC)
groupThree = QButtonGroup()
groupThree.addButton(threeA)
groupThree.addButton(threeB)
groupThree.addButton(threeC)
groupThree.setExclusive(True)
self.layout = QVBoxLayout()
self.layout.addLayout(layoutOne)
self.layout.addLayout(layoutTwo)
self.layout.addLayout(layoutThree)
self.setLayout(self.layout)

Я хочу, чтобы «Вариант 1B» находился в том же столбце, что и «Вариант 3B», поэтому я добавил веса/«растяжки»:
Код: Выделить всё
layoutOne.addWidget(oneA, 1)
layoutOne.addWidget(oneB, 2)

Однако, как вы можете видеть, по какой-то причине они не выровнены идеально, во втором столбце есть смещение в 2 пикселя.
Если я добавлю еще один QHBoxLayout с двумя элементами, то эта одна строка отлично работает с макетомLayoutOne, но второй элемент также смещается по отношению к макетуLayoutThree.
Использование LayoutOne.addStretch(1) вместо весов удаляет практически все пробелы (
Код: Выделить всё
oneBЧто вызывает это смещение и как мне правильно его выровнять (я не хочу использовать QGridLayout!)?
Подробнее здесь: https://stackoverflow.com/questions/799 ... ng-weights
Мобильная версия