void replaceWidget(QWidget *a, QWidget *b) { if(!a) return; QLayout *lo = rw_findLayoutOf(a); if(!lo) return; //printf("decided on this: %p\n", lo); if(lo->inherits("QBoxLayout")) { QBoxLayout *bo = (QBoxLayout *)lo; int n = bo->findWidget(a); bo->insertWidget(n+1, b); delete a; } }