Python PySide(内部c+;+;对象已删除)

Python PySide(内部c+;+;对象已删除),python,pyside,Python,Pyside,我最近决定用Python和PySide编写我的第一个应用程序。但我有个问题,希望你们能帮忙 Python不断地增加删除“内部C++对象”的异常。根据我有限的Python经验,我认为我的对象超出了范围,被Python的垃圾收集器删除了 那么,我将如何使用PySide在Python中设计一个多页应用程序呢。并且能够保留我的QWidgets,这样我就可以再次显示页面 谢谢你抽出时间 更新(代码) 然后,我通常会通过调用以下命令来访问主面板: import kernel kernel.instance

我最近决定用Python和PySide编写我的第一个应用程序。但我有个问题,希望你们能帮忙

Python不断地增加删除“内部C++对象”的异常。根据我有限的Python经验,我认为我的对象超出了范围,被Python的垃圾收集器删除了

那么,我将如何使用PySide在Python中设计一个多页应用程序呢。并且能够保留我的QWidgets,这样我就可以再次显示页面

谢谢你抽出时间

更新(代码)

然后,我通常会通过调用以下命令来访问主面板:

import kernel
kernel.instance().main_panel()
那么我是不是走错了路了?

请看这里:

如果某个QObject在中不在范围内 Python,它将被删除。你有 注意保持对 对象:

  • 将其存储为您保留的对象的属性,例如。 self.window=qmainfown()
  • 将父QObject传递给对象的构造函数,使其成为所有者 由家长

经过一番搜寻和梳理,我找到了解决办法。我通过将所有页面设置为中心小部件来显示它们,当阅读时,我发现我的小部件基本上被qt删除,如前所述:

注意:QMainWindow拥有 控件指针,并在 适当的时间


因此,要开发一个多页应用程序,请看一看。

如何提供一些示例代码,这会引发异常?我将其存储为属性的对象是否必须是QObject或QWidget?不,任何Python对象都可以,只要对象不超出范围。好的,但我的实例对象在哪里超出范围?我通过调用kernel.instance().bootstrap()启动应用程序,如果需要mainwindow或其他小部件,所有其他小部件都会调用kernel.instance().mainwindow()。。。我只是刚刚看了一下代码,它看起来还可以,
实例化
并没有超出范围。我在最初的问题中遇到了这个问题,但很难重现,有没有什么方法可以手动触发它?我猜QT和用户并不总是同意“适当时间”的含义。
import kernel
kernel.instance().main_panel()