小编sil*_*ght的帖子

PyQt 5:扩展窗口时如何保持相对小部件大小

我正在 Maya 2018 中开发一个自定义 ui,它使用 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()
Run Code Online (Sandbox Code Playgroud)

python maya pyqt5 pyside2

3
推荐指数
1
解决办法
4819
查看次数

标签 统计

maya ×1

pyqt5 ×1

pyside2 ×1

python ×1