大漠之鹰:for(int i=0; i < 50; i++){ label=new QLabel(this);} (2016-07-11 11:49)
大漠之鹰:for(int i=0; i < 50; i++){ label=new QLabel(this);}label后边跟索引 了吗?上边的代码怎么没有了,是论坛的问题吗?段错误是访问空指针造成的 (2016-07-11 13:01)
兵317:析构函数中delete这些创建的label了吗?保险起见还是加上吧,虽说Qt中有某些机制让写delete的少。开发板上运行Qt发生段错误的原因,最常见的应该就是指针问题了。 (2016-07-11 12:20)
大漠之鹰:真是论坛的问题吗?label后边的方括号i没了 (2016-07-11 13:02)
uidab:一般情况arm返回的段错误都和指针有关。 (2016-07-11 13:27)
大漠之鹰:只有arm上有问题吗?其它平台会有问题吗?代码可以发上来看看? (2016-07-11 14:07)
大漠之鹰:只有arm上有问题吗?其它平台会有问题吗?代码可以发上来看看?Qt的版本是多少? (2016-07-11 14:07)
大漠之鹰:什么啊,看清楚我说的啥啊。我说的论坛有问题,回复的内容会丢东西
uidab:确实会丢,这个可能和发代码没用代码 " <> " 括起来有关系。 (2016-07-11 14:50)
nautiluslee:[表情]版主,能帮我看下问题吗 (2016-07-11 14:55)
uidab:我现在也在arm下开发,调试起来确实不方便,从现象上看基本确定是和指针有关的。 (2016-07-11 14:57)
nautiluslee:鉴于之前关闭子界面的时候里面的控件状态并没有改变,我想应该是没有delete的原因,但是试了几种delete方法都不行 (2016-07-11 15:01)
uidab:从代码上看你是要定义指针数组,new之前没有判断NULL,new之后没有判断是否成功。一般来讲PC上new之后都会成功,我不知道你的arm上空间大小多大。从你的说明上看是new出错了。另外,没看到你是怎么删除的。 (2016-07-11 15:04)
nautiluslee:你说的arm上的空间是指什么空间?一种是在析构函数里删除的:linemenu::~linemenu()....... (2016-07-11 15:11)
uidab:空间是指内存加硬盘。毕竟是嵌入式,要考虑性能。我去年也按你这种方式试过,执行top命令查看 new widget之前和之中,以及delete widget之后,发现delete之后很久使用的内存数值都不下降,就放弃这种方式了。毕竟完成任务要紧,需要优化可以慢慢来。 (2016-07-11 15:25)
nautiluslee:请问这跟创建的子界面类型有关系吗?我的主界面是mainwindow,子界面都是dialog。是不是关闭dialog的时候里面的控件就是不会销毁的? (2016-07-11 16:14)
uidab:肯定会销毁的。你不是在Linux上没问题嘛!! (2016-07-11 17:22)