(我使用 Qt 4.7、Windows 7、64 位)。
我创建了一个自定义表。每行都是带有小部件的水平布局。这些行保存在 QList 中以便于访问,子代也是如此。这些行也添加到父小部件内。
如果我调整父小部件的大小,我会计算新的大小,删除所有内容,然后重新创建它。
我的问题是我不想删除任何小部件。只有当我清理桌子时,我才会这样做。
由于我在 QList 和父布局中都有小部件,如何删除每行中的所有小部件,删除所有布局,然后将它们添加到新布局中?
如果我这样做:每个布局中的每个元素的 takeAt(0) 我有一个 QLayoutItem 里面有一个小部件......如何在不删除小部件的情况下删除 layoutItem?......如何删除小部件而不杀死它,不管是在父母还是孩子身上?因为有很多删除方法:removeItem,removeWidget...在布局中,但不是takeWidget...只是takeAt(),它给出了一个Qlayoutitem。
我尝试了几种方法,但无论它们发生了什么,我仍然可以看到这些小部件。
关于这个的问题:
小部件何时被删除?如果我从布局中获取小部件(索引),它会在一段时间内自行删除吗?如果我在另一个列表中有指向它的指针,会发生这种情况吗?
removeAt(index) 是否执行小部件的删除方法?