底层因为接受到操作系统信号而停止
如题,想我这样的新手最喜欢遇到我问题。
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所致啊~
[解决办法]