关闭Panda3d应用程序而不关闭整个过程

时间:2016-03-31 16:44:50

标签: python python-2.7 panda3d

写了一个小应用程序,它由一个QT GUI模块组成,该模块又启动一个继承自ShowBase类的对象。

问题是,如果我关闭Panda App,ShowBase类会调用finalizeExit(),然后通过调用exit来关闭整个过程。

如果我通过覆盖userExit()来避免调用finalize方法,则不会删除App的资源,并且任务管理器会继续工作。

有没有办法在不叫退出的情况下关闭熊猫应用程序?

2 个答案:

答案 0 :(得分:1)

至少在最近的Panda开发版本中,您应该能够调用base.destroy()来关闭ShowBase并卸载(大多数)资源。在主窗口关闭时,您仍然需要覆盖finalizeExit()以不退出应用程序。

答案 1 :(得分:0)

也许我的回答来得太晚了,但它可能对其他人有帮助。 我遇到了同样的问题,但Tkinter却没有QT。

您可以做的是在调用应用程序的类之后:

app = my_class(...)

try: app.run()
except SystemExit: base.destroy()

这可控制熊猫如何关闭应用程序。在这种情况下,它将根本不会调用finalizeExit()。 base.destroy()将破坏打开的窗口。