Вижу 2 варианта: писать собственный Layout или отслеживать перемещение айтемов и при их "соседстве" не отрисовывать рамку на соответствующей стороне одного из них. Я как-то писал собственный Layout, было не очень сложно, но подробностей уже не помню.
Пока наметил такой план:
- унаследоваться и в перекрытом setGeometry сначала вызвать setGeometry родителя. Потом подвинуть нужные айтемы взяв смещение из своей мапы <QWidget *, QSize>. Дойдет до дела - отпишусь