为什么Qt图表示例不会删除动态分配的变量

时间:2016-10-01 03:04:37

标签: c++ qt

我一直在检查Qt BarChart示例,我注意到动态分配的变量根本没有删除,为什么?我尝试复制这个例子的想法,然后在布局中使用,并在plainTextEditor中显示图表。但是,我想在显示图表时删除这些动态分配的变量,但我不知道何时何地删除它们。我试图在函数结束时删除它们,但它不会在plainTextEditor上显示任何内容。我不想将这些动态分配的变量定义为成员变量,并在析构函数中删除它们。

以下是我从Qt文档中获得的示例

<style>
    <?php include './css/style.css'; ?>
</style>

1 个答案:

答案 0 :(得分:2)

在Qt中,某些功能被指定为拥有所有权,形成父/子关系。父母在被摧毁时将其删除。

根据您显示的示例,seriesset0set4的父级(来自对series->append的调用)。 chartaxisseries(来自chart->setAxisX)的父级。 chartViewchart的父级(来自其构造:QChartView *chartView = new QChartView(chart))。最后windowchartView的父级(来自window.setCentralWidget)。由于window不是指针,而是具有自动存储持续时间的实际QMainWindow对象,因此它将在范围的末尾被销毁,并将其所有后代与其一起使用。