您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用另一个布局替换QWidget上的布局

用另一个布局替换QWidget上的布局

您可以简单地将布局重新设置为一个临时小部件:

def reLayout(self):
    QWidget().setLayout(self.layout())
    layout = QGridLayout(self)
    ...

这样会将所有子窗口小部件重新添加到该临时对象中,并且该对象及其新子对象将被立即删除,因为我们没有对其进行引用。

但是,为单个窗口小部件提供多种布局并能够在它们之间进行切换的典型方法是使用QStackedWidgetQStackedLayout

并且,如果您仍然需要该次要问题的答案:

如何先删除旧版面?

看来您无法直接删除QObject具有父项的,因为父项保留对该对象的引用。但是您可以将对象添加一个临时对象QObjectCleanupHandler中,与上述解决方案一样,该临时对象将立即随其包含的对象一起删除

QObjectCleanupHandler().add(self.layout())
其他 2022/1/1 18:36:51 有511人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶