Qt软件开发文档5---父指针传递的妙用

来源:互联网 发布:基因组数据库意义 编辑:程序博客网 时间:2024/06/05 05:44

上节提到过,main窗口调用各widget封装好的dll时,将parent传递给了个widget
在treeView 封装dll时 写入的showTree方法接受到parent

bool showTree(void *parent, void *tree, void *){    QWidget *par = (QWidget *)parent;    valTrans *vt = (valTrans *)tree;    //接收到父窗口传过来的parent    TreeView *treeview = new TreeView(par);    QWidget *treewidget = (QWidget *) treeview;    vt->ptr = treewidget;    return true;}

在创建TreeView Class 时 一定要继承对应的类,这样才能调用到父parent

class TreeView : public QWidget

这样写,在关闭主窗口时,会调用TreeView 的析构函数

TreeView::~TreeView()

好处有很多
一方面会减少内存泄漏的发生
另一方面
在关闭TreeView 时,需要将修改后的TreeView 的内容保存到XML文档中
这时候,直接在TreeView的析构函数中保存XML文档即可,下次进入便能直接读取

TreeView::~TreeView(){    QString fileName = "treeindex.xml";    writeXml(fileName, treeView);}
0 0
原创粉丝点击