I subclassed QWidgetAction because I need custom widgets for the actions, but we can ignore that part. Just think QAction objects.

I did subclass QMenu, but I just can't figure out a way to do what I want. I can't just insert a grid layout into the menu, and there is no way to tell QMenu to have a minimum row count so that it wraps around and forms the next column.

I think I'll have to subclass QWidget and design a custom menu.