Нет, я про всю функцию. Ты сначала скрываешь его зачем-то, потом обратно отображаешь. Управляешь памятью руками. Зачем-то каждый раз создаешь новый виджет. Переносишь вот так вот просто лейаут текущего виджета новому виджету, а это вообще чревато глюками и сегфолтами.