Qt、wxWidgets等控件编程的一个问题
举例说明:
但是没写FindDialog的析构函数,也就是没有显示的调用
书上是这样说的:由于在创建这个对话框中的窗口部件和布局时使用的是new,所以需要写一个能够调用delete的析构函数,以便可以删除所创建的每一个窗口布局和布局。但是这样做并不是必需的,因为Qt会在删除父对象的时候自动删除其所属的所有子对象,也就会删除FindDialog中作为其子孙的所有子窗口部件和子布局。
我想知道它的自动删除时如何实现的,能否举个简单的例子实现一下,就是 class A,class B 这样。
好像不仅仅Qt这样,在 C++ 的控件编程中,如 MFC、wxWidgets,都有这个现象,就是在父类中new 一个新的类,而在父类的析构函数中不显示调用delete删除这个,而这个new 出来的东东会被自动删除
谢谢!
class FindDialog : public QDialg
{
Q_OBJECT
public:
......
private:
QLabel * linelabel;
......
};
FindDialog : FindDialog()
{
...
linelabel = new QLabel(tr("hello world!"));
....
}
但是没写FindDialog的析构函数,也就是没有显示的调用
delete linelabel;
书上是这样说的:由于在创建这个对话框中的窗口部件和布局时使用的是new,所以需要写一个能够调用delete的析构函数,以便可以删除所创建的每一个窗口布局和布局。但是这样做并不是必需的,因为Qt会在删除父对象的时候自动删除其所属的所有子对象,也就会删除FindDialog中作为其子孙的所有子窗口部件和子布局。
我想知道它的自动删除时如何实现的,能否举个简单的例子实现一下,就是 class A,class B 这样。
好像不仅仅Qt这样,在 C++ 的控件编程中,如 MFC、wxWidgets,都有这个现象,就是在父类中new 一个新的类,而在父类的析构函数中不显示调用delete删除这个,而这个new 出来的东东会被自动删除
谢谢!
...全文
相关推荐
wxWidgets-2.9.4
**wxWidgets-2.9.4 知识点详解**`wxWidgets-2.9.4` 是一个开源的跨平台应用程序开发框架,它允许程序员使用C++编写代码,同时在多个操作系统上构建用户界面,包括Windows
wxWidgets在codeblocks中的配置
知识点详解:### 1. wxWidgets简介wxWidgets是一个强大的跨平台软件开发库,最初于1992年以“wxWindows”的名义发布,后因商标问题于2004年更名。
riw.rar_界面编程_C/C++_
wxWidgets也有类似的类,如wxStaticText和wxFileName来处理这一问题。
基于Qt4编程学习笔记
【Qt4编程学习笔记】Qt4是一个强大的C++库,主要专注于GUI编程,但它远不止于此,提供了诸如网络、数据库、XML处理等丰富的功能。
FLTK vs wxWidgets vs Qt:3 款 C++ GUI 库在 5 个维度的轻量化选型对比
本文对比了FLTK、wxWidgets和Qt三款C++跨平台GUI库在轻量化选型中的表现,从库大小、内存占用、启动速度、API复杂度和跨平台一致性五个维度进行量化分析。FLTK在库体积和内存占用上表现最优,适合嵌入式开发;wxWidgets提供原生外观和丰富控件,适合快速开发工具;Qt则在高性能可视化场景中占据优势。


工具平台和程序库
