编写了一个小型应用程序,该应用程序由一个QT GUI模块组成,该模块反过来启动一个从ShowBase类继承的对象。
问题是,如果我关闭Panda应用程序,ShowBase类会调用finalizeExit(),从而通过调用exit关闭整个进程。
如果我通过重写userExit()来避免调用finalize方法,那么应用程序的资源不会被删除,任务管理器也会继续工作。
有没有一种方法可以在不呼叫出口的情况下关闭熊猫应用程序?
至少在最近的Panda开发版本中,您应该能够调用base.destroy()
来关闭ShowBase并卸载(大部分)资源。当主窗口关闭时,您仍然需要覆盖finalizeExit()
才能不退出应用程序。
也许我的答案来得很晚,但它可能会帮助其他人。我也有同样的问题,但Tkinter不是QT。
您可以在调用应用程序的类之后进行操作
app = my_class(...)
try: app.run()
except SystemExit: base.destroy()
这控制panda如何关闭应用程序。在这种情况下,它根本不会调用finalizeExit()。destroy()将销毁打开的窗口。