我正在制作一个简单的小部件,可以充当其他小部件的容器。小部件的功能之一是您可以通过单击它来展开/折叠它。我目前的方法基本上是查找布局的所有子小部件并隐藏它们。我正在寻找有关如何正确处理此问题的任何帮助-我当前的实现至少有一个严重的警告:您不能在折叠时添加小部件(它们以“未隐藏”状态添加)
setCollapsed
这是单击小部件时运行的方法
def collapsed(self):
return self._isCollapsed
def setCollapsed(self, collapseBool):
self._isCollapsed = collapseBool
if self.layout()!=None:
childWidgets = [self.layout().itemAt(i).widget() for i in range(self.layout().count())]
for w in childWidgets:
if isinstance(w,QtGui.QWidget):
w.setHidden(collapseBool)
if collapseBool:
self._cachedMargin = self.layout().margin()
self.layout().setMargin(0)
else:
self.layout().setMargin(self._cachedMargin)