Qt布局不反映组框大小的变化

问题描述 投票:1回答:1

我正在尝试使用PyQt5和QT Creator制作具有动画可折叠groupBox的UI。

如果groupBox未经检查,其高度会缩小到一个小值,如果检查groupBox,其高度会扩展到sizeHint().height()

问题是当布局中出现另一个groupBox时。 anothergroupBox位置并未反映出崩溃的groupBox大小发生了变化。

有没有办法如何迫使底部qazxsw poi与崩溃的qazxsw poi一起移动?

这是它的样子:

groupBox


附加信息

UI布局:groupBox

enter image description here调整实施:

enter image description here
python pyqt pyqt5 qvboxlayout
1个回答
1
投票

groupBox考虑到需要类似小部件的问题,以下是解决方案。在这种情况下,策略是使用QScrollArea作为容器并使用minimumHeight和maximumHeight属性。

my_ui._ui.groupBox.toggled.connect(my_ui.group_box_size_change)

def group_box_size_change(self):
    duration = 1000
    self.animaiton_gb = QtCore.QPropertyAnimation(self._ui.groupBox, b"size")
    self.animaiton_gb.setDuration(duration)

    self.animaiton_gb.setStartValue(QtCore.QSize(self._ui.groupBox.width(),  self._ui.groupBox.height()))

    if self._ui.groupBox.isChecked():
        self.animaiton_gb.setEndValue(QtCore.QSize(self._ui.groupBox.width(), self._ui.groupBox.sizeHint().height()))
    else:
        self.animaiton_gb.setEndValue(QtCore.QSize(self._ui.groupBox.width(), 49))

    self.animaiton_gb.start()
© www.soinside.com 2019 - 2024. All rights reserved.