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

Closing a Panda3d app without shutting down the whole Process

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

问题是,如果我关闭 Panda 应用程序,ShowBase class 会调用 finalizeExit(),后者又会通过调用 exit 关闭整个进程。

如果我通过重写 userExit() 避免调用 finalize 方法,应用程序的资源不会被删除,任务管理器会继续工作。

有没有不用调用exit就可以关闭熊猫App的方法?

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

也许我的回答来得太晚了,但它可能会对其他人有所帮助。 我遇到了同样的问题,但使用的是 Tkinter 而不是 QT。

你可以做的是在你调用应用程序的 class:

app = my_class(...)

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

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