我有一个主窗口,我动态创建对象,所以在进行任何新屏幕之前,我必须先删除最后一个屏幕上的所有对象.我正在使用它,它工作得很好:
qDeleteAll(this->window->findChildren<QWidget*>());
Run Code Online (Sandbox Code Playgroud)
但现在我有这个屏幕,有一些QGraphicsView
和QGraphicsScene
,和我做了他们的父母在主窗口为好,现在我有一个崩溃当我尝试删除所有主窗口的孩子.
所以我的问题基本上是,如何避免这次崩溃?如何轻松安全地删除所有主窗口的孩子,包括GraphicsScene
和GraphicsView
?
我怀疑你的崩溃是由双重删除引起的.
QObject的父/子关系使得如果父项被删除,它的子项也会被删除.因此,如果您想删除一个小部件及其所有后代,那么您需要做的就是删除父级.
在你的情况下,我可能会确保所有动态创建的小部件都属于某种容器小部件/框架并删除它然后重新创建它.
归档时间: |
|
查看次数: |
3888 次 |
最近记录: |