美文网首页
QT对象树

QT对象树

作者: AD_wang | 来源:发表于2023-11-21 09:11 被阅读0次

//根据栈的特性,父窗口在子窗口后创建,程序退出时,先析构父对象及其对象树(把子对象析构了),再析构子对象(其实已经析构了),造成二次析构异常。这种问题就要先创建父对象,再创建子对象;子对象析构时会从父对象的对象树上移除(子对象发出destroyed的信号,父对象的槽函数处理移除),再析构父对象,就不会二次析构子对象。或者将对象大胆地创建在堆上。

#include <QtWidgets/QApplication>

#include <QWidget>

#include <QPushButton>

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

QPushButton quit("Quit");//子对象先创建的

QWidget window;//父对象后创建

quit.setParent(&window);//正式建立父子关系

quit.move(100, 100);

window.show();

return a.exec();

}//程序退出,“释放”栈对象异常。

相关文章

  • QObject类

    徐红伟@百香果科技 QObject类是所有Qt对象的基类。是Qt对象模型的基础。 Signals和Slots机制 ...

  • Qt 容器

    Qt 的容器类是一种值类型(能够被复制的事物)的集合,包括指向对象类型的指针(但不包括对象类型)。Qt 容器被定义...

  • Qt中事件的理解(1)

    1、Qt中的事件 Qt中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QM...

  • 基于Qt和OpenCV实现彩色图和灰度图的转换

    一、实验目的与要求 1.1 目的 熟悉Qt可视化开发,理解C++的面向对象思想 熟悉Qt和Opencv开发环境搭建...

  • QT(内存泄露)

    1 Qt半自动的内存管理 Qt中已下情况new出的对象可以不用亲自去delete: (1)QObject及其派生类...

  • QT - QML对象属性

    QML对象属性 每个QML对象类型都有一组定义的属性。使用为该对象类型定义的属性集创建对象类型的每个实例。可以指定...

  • QT json对象解析

    json 数据文本:http://edu.jb51.net/json/json-json-arrays.html[...

  • Qt信号与槽原理

    信号和槽是用于对象之间的通信的,这是Qt的核心。为此Qt引入了一些关键字,他们是slots、signals、emi...

  • qt树控件treeview

    关于currentIndex,遇到一个坑:treeview自有属性currentIndex是只读属性,不可修改,当...

  • Qt 5.14版本更新细节

    本文翻译并摘录自Qt官网。 新功能(现有模块中) Qt 3D 线程体系结构大更改(线程更改,删除帧缓冲区对象)。 ...

网友评论

      本文标题:QT对象树

      本文链接:https://www.haomeiwen.com/subject/ocebwdtx.html