Here are some general widget-building tips (in no particular order):
When creating the widgets in methods from Initialization to Connect, the widgets don't exist at the time of realization and may be skipped. In this case, you need to have a Realized method in which you realize the children you want visible.
It's also important to have an Unrealized method in which you destroy the subordinates or you must check to make sure you don't already have the subordinates in your Initialization method. Failing to do either of these will likely produce a memory leak.
PtSuperClassExtent( PtBasic "or another superclass", widget);