题
我已经有了一夸脱的应用程序,使用QPointers带来了新的用户界面的对话(部件).主要应用程序可以有许多相同的部件载有不同的数据。这问题我有的是在删除,释放内存每个小部件。如果我监测RAM使用的程序,每次我按一下按钮打开这个新的部件,它增加了ram当我靠近的部件,它似乎并没有被释放。我已经试过使用 deleteLater
和其他的解决方案,但继续得到崩溃的程序。
一些例子码是:
QPointer<ListReservations> listResWindow = new ListReservations(resID);
listResWindow->setNum(numpeople);
listResWindow->show();
这叫"ListReservations"的部件,其中宣布为一个 QDialog
(不模式).在该对话然后,我有一个按钮来接近的窗口中的电话的 QWidget::close()
隙。
我猜测的问题是如何我主要的节目(已 QPointer
)当知道的对话是关闭的,然后免费的对话以及(如果可能的话)删除指针,以节省更多的记忆...
我想你可能要做一个 QConnect()
来的 QPointer
对象,但我似乎找不到任何信号或槽,将允许通过的指针,少得多,发送的信号,一旦该对话是实际上关闭,并准备为删除。
也许我需要某种形式的功能是在主要程序,需要一个通用的指针的对象,然后有QDialog呼叫,呼叫前它自己的紧隙?在这一职能将通过本身被摧毁?只是扔出的想法,我已经试图执行而失败。
我不认为我可以重复使用相同的指针在其他地方,因为在理论上你可以多ListReservations窗户打开在同一时间。
不隶属于 StackOverflow