• 8057阅读
  • 7回复

[提问]关于delete函数 [复制链接]

上一主题 下一主题
离线xiao_xiao_ca
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-24
在.h文件中定义了三个按钮    QPushButton *nextBtn;QPushButton *preBtn;QPushButton *backBtn;
在主界面上有一个“弹出”按钮,点击它后,执行下面代码:    
nextBtn = new QPushButton(tr("上页"),this);
preBtn = new QPushButton(tr("下页"), this);
backBtn = new QPushButton(tr("返回"), this);
同时隐藏“弹出”按钮,backBtn按钮的作用如下代码:
delete listWidget;
delete nextBtn;
delete preBtn;
delete backBtn;
同时显示“弹出”按钮,现在的问题是:为什么第一次点“弹出”按钮很正常,使用backBtn返回以后,再次点击"弹出“按钮就显示不了nextBtn,preBtn和backBtn了呢?难道delete函数把变量名都删除了?因为如果变量名字存在,再次点击弹出按钮的话,会重新new这三个按钮,现在实际情况确实没有显示,大概是什么原因呢?新手见谅,比较小白!
离线jdwx

只看该作者 1楼 发表于: 2012-05-24
从来没这么用过。不过可以用QDebug输出3个button看看有什么变化。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线uidab

只看该作者 2楼 发表于: 2012-05-24
回 楼主(xiao_xiao_ca) 的帖子

我不知道你为什么要这样做,其实可以setVisible(false)  再配合layout基本能实现界面。

从变量来看你的“上页”,“下页”按钮可能要connect一个槽函数。不知道是不是这样删除会有影响。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线iptton

只看该作者 3楼 发表于: 2012-05-24
delete删除的是变量指向的内存。
delete的作用不是隐藏。

建议先找C/C++基础的书了解下

如果你只是需要隐藏,调用button的setVisible(false)方法就行了:
listWidget->setVisible(false);
需显示时setVisible(true)就行
[url] http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/ [url]
离线xiao_xiao_ca
只看该作者 4楼 发表于: 2012-05-25
引用第3楼iptton于2012-05-24 21:02发表的  :
delete删除的是变量指向的内存。
delete的作用不是隐藏。
建议先找C/C++基础的书了解下
.......

可是我不是单单的显示和隐藏关系,因为再次点击“弹出”按钮之前可能做了数据的修改,按钮上显示的内容需要改变,这时候单纯的显示隐藏就没有做到更新数据的作用。。。
离线xiao_xiao_ca
只看该作者 5楼 发表于: 2012-05-25
引用第3楼iptton于2012-05-24 21:02发表的  :
delete删除的是变量指向的内存。
delete的作用不是隐藏。
建议先找C/C++基础的书了解下
.......

我本来就意思就是要用delete删除变量的内存,因为我再次点击“弹出”按钮后,所有变量都会重新new一次,不删除怎么new呢。。。
离线xiao_xiao_ca
只看该作者 6楼 发表于: 2012-05-25
已解决,谢谢各位,主要是用了一个QGridLayout没有删除。。
离线yfx2003

只看该作者 7楼 发表于: 2012-05-25
问题搞得复杂了

修改内容只需要对该 btn 用  setText 之类的函数即可
www.qtcn.org/gpq4/
ajaxref.okajax.com/
快速回复
限100 字节
 
上一个 下一个