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