• 3502阅读
  • 3回复

求助:关于对象数组 [复制链接]

上一主题 下一主题
离线verytoy
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-04
在qt中想new一个QCheckBox数组,并把它加入一个Qvboxlayout中,这个QVBoxLayout在UI中
所以写了:
QCheckBox * pcb=new QCheckBox[4];
for(int i=0;i<4;i++)
{
    pcb->setText("check");
//    ui->layout->addWidget(pcb+i);
}

如果ui->layout->addWidget(pcb+i);不注释掉,程序可以运行,
但在关闭时会出现 “xxx.exe已停止工作,正在检查解决方案”似乎是程序崩溃了
注释后没有问题
离线verytoy
只看该作者 1楼 发表于: 2009-08-05
修改了一下,不用ui,只在MainWindow中使用
QCheckBox * pcb=new QCheckBox[4];
for(int i=0;i<4;i++)
{
    pcb->setText("check");
    layout->addWidget(pcb+i);
}
好一些,不是每次都出现“xxx.exe已停止工作,正在检查解决方案”,但几次开启程序,还会出现一次,
不知道是怎么回事。有语法问题吗?
我的系统是vista home basic
离线foxyz

只看该作者 2楼 发表于: 2009-08-05
QCheckBox * pcb=new QCheckBox[4];
改成
QVector<QCheckBox*> cbList;
for(int i=0;i<4;++i)
{
    cbList<<(new QCheckBox(this));
    layout->addWidget(cbList[ i ]);  
}
    
离线verytoy
只看该作者 3楼 发表于: 2009-08-05
但是为什么原来的写法会出现问题,我找不到语法上的问题,
好像与ntdll.dll有关
快速回复
限100 字节
 
上一个 下一个