我有一个带有“Settings”按钮的表单(从QMainWindow继承),需要显示设置表单(从QWidget继承)。
按钮click()与某些设置连接ButtonClick()插槽
并在settingsButtonClick中:
void MainQT::settingsButtonClick()
{
SettingsForm *settingsForm = new settingsForm();
settingsForm->show();
}
它可以正常工作,但问题是我是否需要在某处删除此表单,或者在我关闭设置表单时将其删除?
我在这种情况下管理内存的正确方法是什么?我应该在MainForm的ctor中实例化隐藏的设置表单,仅在请求时显示吗?
最佳答案
我将通过以下方式进行操作:
void MainQT::settingsButtonClick()
{
SettingsForm *settingsForm = new settingsForm();
settingsForm->setAttribute( Qt::WA_DeleteOnClose );
settingsForm->show();
}
使用
Qt::WA_DeleteOnClose
将确保关闭settingsForm
后将其删除。有关更多详细信息,请查看Qt documentation。