Я работаю над пользовательским интерфейсом в 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()
@username
- person eyllanesc   schedule 03.11.2019