一个折磨了我好久好久的问题,终于得到解决,哈哈哈!百度了很久,都没有找到具体方法,最后突然试出来了
首先,在不知道layout中控件的情况下,要删除所有的子控件,可采用以下方法:
for i in range(verticalLayout_3.count()):
print(verticalLayout_3.count())
verticalLayout_3.itemAt(i).widget().deleteLater()
或者
for i in range(verticalLayout_3.count()):
verticalLayout_3.itemAt(i).widget().delete()
delete()使用实时就删除了控件
deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event之后才会销毁对象。 这样做的好处是可以在这些延迟删除的时间内完成一些操作,坏处就是内存释放会不及时
但是由于我的需求不一样,所以不能采用这种方法
我需要实现的目标:当我点击节点时,能切换节点所对应的不同的表格
先说说我的思路:(我采用的是Python+pyqt+Pycharm)
1.在创建一个节点的同时,新建一个表格(tablewidget)
2.把节点和新建的表格,变成一个字典返回,则可以通过节点为索引,查找到对应节点所对应的表格
3.判断当前表格和当前节点所对应的表格是否一致
4.如果不一致,则移除当前表格,添加当前节点所对应的表格