The one idea I had for this problem would be to just write a whole new widget using QGridLayout as a container of sorts, then nest new QGridLayouts for child elements instead of using spans. Then I can use QLabels for displaying data, and on user clicking I can create an editor at that location.

Is that a totally crazy idea?