Почему TreeCtrl моей WxPython не может показать и расширяться в окнах, но хорошо в макинтош:WxPython не может расширяться в окнах
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(450, 350))
hbox = wx.BoxSizer(wx.HORIZONTAL)
vbox = wx.BoxSizer(wx.VERTICAL)
panel1 = wx.Panel(self, -1)
panel2 = wx.Panel(self, -1)
self.tree = wx.TreeCtrl(panel1, 1, wx.DefaultPosition, (-1,-1), wx.TR_HIDE_ROOT|wx.TR_HAS_BUTTONS)
root = self.tree.AddRoot('Programmer')
os = self.tree.AppendItem(root, 'Operating Systems')
self.tree.AppendItem(os, 'Linux')
self.tree.AppendItem(os, 'FreeBSD')
self.tree.AppendItem(os, 'OpenBSD')
self.tree.AppendItem(os, 'NetBSD')
self.tree.AppendItem(os, 'Solaris')
self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, id=1)
self.display = wx.StaticText(panel2, -1, '',(10,10), style=wx.ALIGN_CENTRE)
self.tree.Bind(wx.EVT_TREE_ITEM_EXPANDING,self.OnExpanding, id=1)
self.tree.Bind(wx.EVT_TREE_ITEM_EXPANDED,self.OnExpanded, id=1)
self.tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED,self.OnActivated, id=1)
self.tree.Bind(wx.EVT_TREE_ITEM_COLLAPSED,self.OnCollapsed, id=1)
self.tree.Bind(wx.EVT_TREE_ITEM_COLLAPSING,self.OnCollaping, id=1)
vbox.Add(self.tree, 1, wx.EXPAND)
hbox.Add(panel1, 1, wx.EXPAND)
hbox.Add(panel2, 1, wx.EXPAND)
panel1.SetSizer(vbox)
self.SetSizer(hbox)
self.Centre()
def OnSelChanged(self, event):
item = event.GetItem()
self.display.SetLabel(self.tree.GetItemText(item))
def OnExpanding(self,evt):
print "OnExpanding"
def OnExpanded(self,evt):
print "OnExpaned"
def OnActivated(self,evt):
print "OnActivated"
def OnCollapsed(self,evn):
print "OnCollapsed"
def OnCollaping(self,evt):
print "OnCollaping"
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'treectrl.py')
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(0)
app.MainLoop()
я бегу этот код : python2.7-win32 wxPython3.0-win32-3.0.2.0-py27 window7-64
и в окнах тогда событие о расширении и разворачивании никогда не будет отправлено
так как можно сказать, где я ошибаюсь?