Disappointed with commercially produced "100% cotton" cloth training pants that leaked because they contained, upon dissection, polyester batting instead of cotton, and searching for an alternative to "disposable" pullups, I made comfortable, breathable, wash-and-reuse pullup training pants, from materials I already had on hand.
Step 1: Select materials and preshrink
Select underpants that are big and loose on the intended child, but not actually falling down. Wash your intended absorbent layer and the underpants, in the hottest water you can, and dry on high heat, to shrink everything all it can possibly be shrunk, before beginning.
For the absobent panel, I repurposed tattered old cotton prefold diapers that had fulfilled their first duty as diapers for multiple babies and were approaching rag status. If you have no prefolds, or yours may either be re-used or sold, you might find ones in ragged condition you can get for nothing, or close to it. Otherwise, you can substitute anything you think will hold enough moisture, that your sewing machine can stitch through the layers of.