Несколько QHBoxLayouts не совпадают при использовании весовPython

Программы на Python
Ответить
Anonymous
 Несколько QHBoxLayouts не совпадают при использовании весов

Сообщение Anonymous »

Я создал свой собственный QDialog со следующим макетом (Python 3.12.12 в QGIS):

Код: Выделить всё

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" находился в том же столбце, что и "Вариант 2B", поэтому я добавил веса/"растяжки":

Код: Выделить всё

layoutOne.addWidget(oneA,1)
layoutOne.addWidget(oneB,2)
Изображение
Однако, как вы можете видеть, по какой-то причине они не выровнены идеально, во втором столбце есть смещение в 2 пикселя.
Если я добавлю еще один QHBoxLayout с двумя элементами, то эта одна строка отлично работает с макетомLayoutOne, но второй элемент также смещается по отношению к макетуLayoutThree.
Использование LayoutOne.addStretch(1) вместо весов удаляет практически все пробелы ( расположен непосредственно справа от oneA), и я не хочу использовать что-либо с фиксированной шириной в пикселях, например, layoutOne.addSpacing(100), потому что я хочу, чтобы диалоговое окно устанавливало свою собственную ширину (и высоту) в зависимости от размера шрифта (-> настройки пользователя).
Что вызывает это смещение и как мне правильно его выровнять (я не хочу использовать QGridLayout!)?

Подробнее здесь: https://stackoverflow.com/questions/799 ... ng-weights
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»