1

我正在制作一个简单的小部件,可以充当其他小部件的容器。小部件的功能之一是您可以通过单击它来展开/折叠它。我目前的方法基本上是查找布局的所有子小部件并隐藏它们。我正在寻找有关如何正确处理此问题的任何帮助-我当前的实现至少有一个严重的警告:您不能在折叠时添加小部件(它们以“未隐藏”状态添加)

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)
4

1 回答 1

0

我不会单独隐藏所有子小部件,而是隐藏一个父项。

于 2012-06-19T15:36:31.833 回答