从现有的表单打开一个新表单-这是可以接受的吗?

Opening a new form from an existing one - Is this acceptable

本文关键字:表单 一个 新表单      更新时间:2023-10-16

我正在使用以下方法打开一个新的表单

void MyForm::MySlot()
{
    //This method loads up te form for historical feeds
    NewForm *w = new NewForm(); 
    w->show();
}

打开新表单是否可以接受这种方式?此外,我怎么知道何时删除w指针时,窗体关闭?

我想的是设置一个信号,当窗体关闭时触发。该信号的插槽将删除w。这是一种可接受的方式还是有更快的方法来完成此操作?

设置Qt::WA_DeleteOnClose属性:

w->setAttribute(Qt::WA_DeleteOnClose);

这样,Qt的内存管理系统将为您处理它。

如果您想关闭表单,但稍后使用它,请将新表单的父窗体设置为主窗体。这样,当主表单被删除时,Qt也会处理删除新表单。