サンプルコードを使ってwxNotebookを試しましたが、挿入された新しいページは完全に空のままです。 私はタイマーまたは新しいスレッドを使用せず、MainLoopの前にページを挿入すると機能します。 私はどこでも更新、更新などが必要だと思っていますが、動作させることができませんでした。 私はWindows 7とPython 2.7を使用しています。新しいwxNotebook-wxPythonでページが空になる
import wx
import threading
class addNewPages(threading.Thread):
def __init__(self, nb):
super(addNewPages, self).__init__()
self.nb = nb
def run(self):
self.p = 1
for i in range(1, 5, 1):
threading.Timer(i, self.adp).start()
def adp(self):
self.newpage = Page(self.nb)
self.newpage.SetBackgroundColour(wx.GREEN)
wx.StaticText(self.newpage, -1, "PAGE "+str(self.p), style=wx.ALIGN_CENTRE)
wx.CallAfter(self.nb.AddPage, self.newpage, "Page "+str(self.p))
self.p += 1
class Page(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
wx.StaticText(self, -1, "This is a Page object", (20,20))
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="Notebook Test")
p = wx.Panel(self)
self.nb = wx.Notebook(p)
self.page1 = Page(self.nb)
sizer = wx.BoxSizer()
sizer.Add(self.nb, 1, wx.EXPAND)
p.SetSizer(sizer)
if __name__ == "__main__":
app = wx.App()
mf = MainFrame()
mf.Show()
mf.nb.AddPage(mf.page1, "Testseite 1")
th = addNewPages(mf.nb)
th.start()
app.MainLoop()
私はこれらのページをスレッドのみで追加したいのですが、そのスレッドの問題は何ですか? –