layout.addStretch() doneButton = QPushButton("Done") doneButton.setParent(widget) createLayout.insertWidget(0, doneButton) doneButton.hide() createButton.hide() doneButton.show() doneButton.hide() createButton.show() nameToCreate = QLineEdit() nameToCreate.setParent(widget) createLayout.insertWidget(createLayout.count()-2, nameToCreate) doneButton.hide() nameToCreate.hide() def doCreate(): createButton.hide() doneButton.show() nameToCreate.show() createButton.clicked.connect(doCreate) createdLayout = QVBoxLayout() layout.insertLayout(layout.count()-1, createdLayout)