代码之家  ›  专栏  ›  技术社区  ›  Jake Petroules

在Qt主窗口上设置WA\u DeleteOnClose属性时,删除ui指针时程序崩溃

  •  6
  • Jake Petroules  · 技术社区  · 15 年前

    WA_DeleteOnClose 主窗口中的小部件属性。

    setAttribute(Qt::WA_DeleteOnClose);
    

    然而,每当我关闭主窗口时,它的析构函数中就会出现一个segfault,它只有 delete ui;

    简而言之,在Creator中创建了一个qt4gui应用程序,添加了 setAttribute(Qt::WA_DeleteOnClose); 对于构造函数,程序现在在退出时崩溃。

    1 回复  |  直到 15 年前
        1
  •  11
  •   MSalters    15 年前

    你是第一次,还是第二次在它的析构函数中得到一个segfault?记住,主窗口析构函数应该只运行一次。也就是说它应该运行 任何一个 因为 WA_DeleteOnClose

    IIRC,创建者会把主窗口放在 main() . 因此,当 返回主窗口被破坏。

        2
  •  0
  •   vivi    5 年前

    this link 对解决方案提出了很好的建议。

    我认为最好的方法是定义为QPointer来指向obj并在每次使用它时测试NULL,因此当UI obj被破坏时,指针直接设置为NULL。