Python PyQt 删除布局和小部件

问题描述 投票:0回答:1

我在删除小部件/布局时遇到问题。

该函数尝试根据dbo中的内容更新面板,当插入或删除脚本时,我希望面板显示更改,但它工作得不太正常,界面变得一团糟,这个是我的职责:

删除/添加元素后,界面如下所示:

这是我的代码:

github/compliance_operative_control

if self.scripts_list_table is not None:
    while self.scripts_list_table.count():
        child = self.scripts_list_table.takeAt(0)
        if child.widget() is not None:
            child.widget().deleteLater()
            child.widget().setParent(None)
        elif child.layout() is not None:
            child.layout().deleteLater()
            child.layout().setParent(None)
python pyqt widget pyqt6
1个回答
0
投票

我已经找到了解决方案,当你到达一个布局时,你应该做的是在删除它之前迭代该布局,因为小部件不会与布局一起删除。

我复制解决方案,以防有人发现它有用:

def scripts_panel(self):
    if self.scripts_list_table is not None:
        while self.scripts_list_table.count():
            child = self.scripts_list_table.takeAt(0)
            if child.widget() is not None:
                child.widget().deleteLater()
            elif child.layout() is not None:
                while child.count():
                    subchild = child.takeAt(0)
                    subchild.widget().deleteLater()
                child.layout().deleteLater()
© www.soinside.com 2019 - 2024. All rights reserved.