Я работаю над пользовательским интерфейсом в Maya 2018, который использует PyQt5 (через PySide2 - есть некоторые минимальные различия, но это по сути PyQt5).
У меня есть QHBoxLayout
с двумя виджетамив нем и их политика определения размеров установлены на «расширение». Я установил минимальную ширину одного из них примерно вдвое больше, чем у другого.
При каждом расширении окна меньший виджет расширяется, пока не достигнет того же размера, что и большой (который не изменяетсяразмер вообще) ... и затем они оба продолжают расширяться с одинаковой скоростью - оба занимают половину окна.
Я бы предпочел, чтобы они сохраняли свои размеры относительно друг другана протяжении всего расширения.
Есть ли способ сделать это, что я просто полностью упускаю из виду?
Вот несколько упрощенных кодов, которые я написал для воспроизведения проблемы:
import PySide2.QtWidgets as QtWidgets
class TestDialog(QtWidgets.QDialog):
def __init__(self, *args, **kwargs):
QtWidgets.QDialog.__init__(self, *args, **kwargs)
main_layout = QtWidgets.QHBoxLayout()
self.setLayout(main_layout)
main_layout.setContentsMargins(5, 5, 5, 5)
main_layout.setSpacing(5)
w1 = QtWidgets.QPushButton('small')
w2 = QtWidgets.QPushButton('large')
w1.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
w2.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
w2.setMinimumWidth(250)
main_layout.addWidget(w1)
main_layout.addWidget(w2)
self.setMinimumWidth(450)
self.setMinimumHeight(100)
self.resize(450, 100)
test = TestDialog()
test.show()