Одной из причин может быть то, что вы снова и снова создаете Login
виджет без удаления его.
Я считаю, что ваш логин является QWidget
, Панель инструментов - это QDialog
.Вместо close()
просто скройте виджет Login с помощью hide()
или setvisible(false)
.
В closeEvent()
DashBoard дают done(someIntValue);
При доступе к DashBoard вместо show () дают
int returnValue = d->exec();
, еслиreturnValue
- это someIntValue
, show()
Виджет входа в систему.
Таким образом, вы избегаете создания виджета входа в систему несколько раз.Но многие другие факторы могут быть ответственны за использование памяти, что можно выяснить, только просмотрев весь код.
Редактировать:
Поскольку ваша панель инструментов является QMainWindow, вы не можете позвонить done(someIntValue);
Вместо этого попробуйте подключить сигнал destroyed( QObject * obj = 0 )
DashBoard и в соответствующем слоте show()
ваш логин .. Конечно, вы должны иметь экземпляр DashBoard в диалоге логин и соединение междувышеуказанный сигнал и слот должны быть сделаны в Login .
Надеюсь, это поможет.