You have two immediate problems. First, in CoreFrame where you instantiate MyTreeCtrl, you are passing `vbox` as the parent. This is one of the more confusing aspects of wxWidgets. The windows and the sizers live in two separate hierarchies. A sizer controls a set of windows, but it is not itself a window, and thus cannot be a parent. You need to pass "self" as the parent, so the frame becomes the parent window. Essentially, you create a whole bunch of windows in a hierarchy, and then you add those windows to sizers (which have their own hierarchy) to control their placement.
The second problem is in "MyTreeCtrl.__init__" when you call "wx.TreeCtrl.__init__". If you look at the documentation, you'll see that the parameters for that start out self, parent, id, pos, size, style, ... You are not passing a "pos", which is why you get an error. Now, that's a perfectly OK thing to do, but once you omit a positional parameter, the rest have to be specified by name: "wx.TreeCtrl.__init__(self, parent, id, size=size, style=style)". That should get you a little farther.