wx.App
类有什么用(除了文档说的内容),什么时候可以创建一个框架而.Show(True)
呢?
什么时候应该使用wx.App
类,或者为什么不创建框架并只显示它?
答案 0 :(得分:3)
你有来创建一个wx.App。如果您在创建应用程序之前尝试实例化wxPython类,它将失败:
>>> import wx
>>> frame = wx.Frame(None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_windows.py", line 505, in __init__
_windows_.Frame_swiginit(self,_windows_.new_Frame(*args, **kwargs))
wx._core.PyNoAppError: The wx.App object must be created first!
总会有一个,只有一个,wx.App。实例化它初始化wxPython - 创建窗口线程等
答案 1 :(得分:2)
wx.App做了一堆幕后工作,让你的应用程序正常工作。它执行主循环,这是等待用户做某事然后响应的东西。你必须拥有它。正如FogleBird所说。顺便说一句,你不应该有多个。如果它完全有效,这样做会导致奇怪的问题。
答案 2 :(得分:0)
在您的应用中必须执行一些额外功能时,对wx.App进行子类化是一个正当理由。这适用于启动与数据库的连接或通过网络连接,在启动主数据库之前加载一些外部数据/文件。
class MyApp(wx.App):
def OnInit(self):
# Do some work here
return True
def __init__(self):
main_frame = MyFrame(*args, **kwargs)
main_frame.Show()
def OnExit(self):
# Clean up and close the resources from the OnInit() method