首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

底层由于接受到操作系统信号而停止

2013-01-11 
底层因为接受到操作系统信号而停止如题,想我这样的新手最喜欢遇到我问题。QHBoxLayout *vbox new QHBoxLa

底层因为接受到操作系统信号而停止
如题,想我这样的新手最喜欢遇到我问题。
    QHBoxLayout *vbox = new QHBoxLayout(this);
    vbox->addWidget(_EPSzhuDianD);
    vbox->addWidget(_EPSbeiDianD);
    vbox->addWidget(_EPStongXunD);
    ui->groupBox->setLayout(vbox);
执行到:
    ui->groupBox->setLayout(vbox);
就崩溃了。
前面的_EPSzhuDianD、_EPSbeiDianD、_EPStongXunD都继承的QLabel,都用new申请了空间的。
ui->groupBox是直接拖的控件。


检查了一下,没发现内存管理的问题,用Q_CHECK_PTR宏检查也是没发现。
但是就是到那就崩溃。

设断点,一直进入函数,到QScopedPointer类的

   inline T *data() const
    {
        return d;
    }
函数的时候挂掉的。

实在没办法了,求助...
[解决办法]
清除编译产生的中间文件(只保留源文件),从头编译。
[解决办法]
如果楼上说的还不行,一般是犯了低级的对象没分配内存,或无意中 free 掉了。
建议仔细排查。
[解决办法]
 ui->groupBox->setLayout(vbox)
童鞋,你这句多余了
因为前面     QHBoxLayout *vbox = new QHBoxLayout(this);  已经执行了这句的功能。

两个改法:
1. new处 参数设为null
2. 去掉多余那一句。

别的是否有问题我就不知道了

另外,提问问题时候望态度端正,您这一句话几个错别字!
[解决办法]
我也没仔细看,这下在逻辑上来说,你的代码就有问题啊。
 QHBoxLayout *vbox = new QHBoxLayout(this)   使用this  是创建this的layout!!!
[解决办法]
接下来你又把创建的这个layout赋给别的变量,就算是不报错,也是qt的bug所致啊~
[解决办法]

引用:
引用:ui->groupBox->setLayout(vbox)
童鞋,你这句多余了
因为前面     QHBoxLayout *vbox = new QHBoxLayout(this);  已经执行了这句的功能。

两个改法:
1. new处 参数设为null
2. 去掉多余那一句。

别的是否有问题我就不知道了
……

你重载了setLayout()函数?

热点排行