gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:54:07 25 4
gpt4 key购买 nike

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

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

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

感谢您的宝贵时间。

更新(代码)

instancing = None
def instance():
global instancing
if instancing == None:
instancing = WPZKernel()
return instancing

class WPZKernel:
win = None
mainscreen = None

def mainwindow(self):
if self.win == None:
self.win = GMKMainWindow(self)
return self.win

def main_panel(self):
if self.mainscreen == None:
self.mainscreen = GMKMainScreen(self.mainwindow())
return self.mainscreen

然后我通常会通过调用访问主面板:

import kernel
kernel.instance().main_panel()

那么我是不是用错了方法?

最佳答案

经过一番搜索和拉扯,我找到了解决方案。我通过将它们设置为中央小部件来显示所有页面,并且在阅读 QMainWindow documentation 时我发现我的小部件基本上被 qt 删除了,如下所述:

Note: QMainWindow takes ownership of the widget pointer and deletes it at the appropriate time.

所以要开发多页应用程序,不如看看 QStackedWidget .

关于Python PySide(内部 c++ 对象已删除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5339062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com