tyincali explained that very nicely.
And is 'background.SetSizer(verticalBox)' saying verticalBox is parent of background?
You are simply setting the main sizer, background is still the parent. Remember that the first object inside the () is not necessarily the parent.
In your case only the widgets have a parent argument:
wx.Frame(parent, id, title, pos, size, style)
wx.Panel(parent, id, pos, size, style)
wx.Button(parent, id, label, pos, size, style)
wx.TextCtrl(parent, id, value, pos, size, style)
Method sizer.Add() has the following arguments:
sizer.Add(widget, proportion, flag, border)
A lot of the pos, size, style, border, flag arguments have defaults. When you use sizers you don't have to supply the position argument in most cases. It's the role of the sizer to put the widget in the correct position.