The one time I used a grid-like approach was when I was programming a calendar, where the days needed to be arranged in a grid.

And the way I solved that problem was to write my own calendar layout class, and use that as a layout. The big advantage was freedom from fixed-size constraints and calculations - just drop whatever widget I was using into the layout by day number (1-31) and the layout would deal with the size and positioning.