我正在尝试使用PyQt5和QT Creator制作具有动画可折叠groupBox
的UI。
如果groupBox
未经检查,其高度会缩小到一个小值,如果检查groupBox
,其高度会扩展到sizeHint().height()
问题是当布局中出现另一个groupBox
时。 anothergroupBox
位置并未反映出崩溃的groupBox
大小发生了变化。
有没有办法如何迫使底部qazxsw poi与崩溃的qazxsw poi一起移动?
这是它的样子:
groupBox
UI布局:groupBox
将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()