
I have spent a great deal of time trying to find some way to include the Q*Layout classes in Ebuilder. The result, to me, was not really satisfactory. I got rudimentary support in place, but was unable to offer support for the full Q*Layout API. The most prominent reason for this being that it is largly a write-only API. The Q*Layout classes do not allow reading of many essential properties. In Ebuilder, I have followed a philosophy of using native Qt widgets to implement the components in the Designer. I rely on a class based on the Visitor pattern to perform serialization of the Qt widget properties. Unfortunately, this fails to work for the Q*Layout classes, for obvious reasons.
I have tried to contact Qt support to ask them for advice on this problem on various occasions. Unfortunately to no avail. It seems that support for the Widget Designers of the 'old days' is not very high on their list of priorities.
Until a better API arrives, or I figure out an acceptable way to work around this problem, support for layouts will not improve. However, I have provided a way to work around some of the limitations of Ebuilder. You can name your layouts when you create them. Any code you add to the constructor of your class will be added after the part where the children and layouts are created. You can use this to your advantage to set row and column stretch factors for your named QGridLayout, for instance.