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

上节提到过,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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值