我目前正在为我目前工作的学生宿舍编程一些条形标签保存的东西,为此我有两个不同的QScrollAreas和两个QWidget,每个QGridLayout。一个用于用户选择,另一个用于选择要购买的物品。
当我切换到项目选择界面时,一切都很好,我的工作是在这里。self.scrollArea.setWidget(self.itemWidget)
然而,我还实现了一个后退按钮,以防选择了错误的用户,它应该返回到第一个QWidget启动。self.scrollArea.setWidget(self.userWidget)
在我看来,这应该只是再次加载之前建立的Layout,但我却得到了这个错误。
RuntimeError: wrapped C/C++ object of type QWidget has been deleted
我哪里做错了?谁能帮我解决这个问题?
该 文件的 setWidget()
明确指出。
小部件成为滚动区域的子节点 当滚动区域被删除或设置新的小部件时,它将被销毁。
你需要做的是调用 takeWidget()
在设置另一个小组件之前,您可以先使用
或者,您可以使用 QStackedWidget
作为两个小组件的容器。