需要实现的功能:
在现有的利用WX模块的创建父窗口A中用定时器打开子窗口B(子窗口不止一个)。
两种方案:
(1)直接使用threading 模块的定时器————失败,子窗口一闪而过,如果用全局变量来保存它,可以看到他确实存在,但就是一闪而过
[Python] 纯文本查看 复制代码 import threading
import wx
# 新建一个窗口
def create_win( ):
win_01 = wx.Frame( win )
win_01.Show()
threading.Timer(2,create_win ).start()
app = wx.App()
win = wx.Frame(None)
# # # start
# timer = wx.Timer( win )
# win.Bind(wx.EVT_TIMER, create_win, timer )
# timer.Start(1000)
# # # end
win.Show()
threading.Timer(2,create_win ).start()
app.MainLoop()
(2)使用wx自带的定时器——成功
[Python] 纯文本查看 复制代码 import threading
import wx
# 新建一个窗口
def create_win( evt ):
win_01 = wx.Frame( win )
win_01.Show()
app = wx.App()
win = wx.Frame(None)
# # start
timer = wx.Timer( win )
win.Bind(wx.EVT_TIMER, create_win, timer )
timer.Start(1000)
# # end
win.Show()
# threading.Timer(2,create_win ).start()
app.MainLoop()
我想问的是:
为什么会出现这种情况? |