今天做公司项目,想写个动态添加删除表格,表格里涉及到控件,我是先初始化好我需要的控件,然后动态添加到表格中,当我用removeRow删除一行后再添加的时候发现程序运行异常退出了,经过检查发现初始化的控件添加到表格里后通过removeRow删除并不会删除该控件被放在表格里,需要重新初始化`void DlgParameter::slot_add()
{
//m_pTabWidgt->setRowCount(10);
int m_row = m_pTabWidgt->rowCount();
qDebug()<<“m_row”<<m_row;
if(m_row<16)
{
qDebug()<<"m_row++"<<m_row;
//m_pTabWidgt->setRowCount(10);
m_pTabWidgt->insertRow(m_row);
m_pStarTimeEdit[m_row] = new QDateTimeEdit; // 16个开始时间框
m_pStarTimeEdit[m_row]->setDisplayFormat("hh:mm:ss");
// m_pStarTimeEdit[i]->setFixedSize(90,30);
m_pEndTimeEdit[m_row] = new QDateTimeEdit; // 16个结束时间框
m_pEndTimeEdit[m_row]->setDisplayFormat("hh:mm:ss");
//m_pEndTimeEdit[i]->setFixedSize(90,30);
m_pComBoxSamp[m_row] = new QComboBox;
// m_pComBoxSamp[i]->setFixedSize(60,30);
// m_pComBoxSamp[i]->setBackgroundRole(QBrush(0,0,0));
m_pComBoxSamp[m_row]->addItem(“16K”,16);
m_pComBoxSamp[m_row]->addItem(“32K”,32);
m_pComBoxSamp[m_row]->addItem(“64K”,64);
m_pComBoxSamp[m_row]->addItem(“128K”,128);
m_pSpinBoxGain[m_row] = new QSpinBox;
//m_pSpinBoxGain[i]->setFixedSize(60,30);
m_pBtnSet[m_row] = new QPushButton(“设置”); // 16个设置按钮
// m_pBtnSet[i]->setFixedSize(60,30);
m_pLbelTime[m_row] = new QLabel(QStringLiteral(“时间段%1:”).arg(m_row+1)); // 16个时间段标签
m_pLbelTime[m_row]->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
m_pTabWidgt->setCellWidget(m_row,0,m_pLbelTime[m_row]);
m_pTabWidgt->setCellWidget(m_row,1,m_pStarTimeEdit[m_row]);
m_pTabWidgt->setCellWidget(m_row,2,m_pEndTimeEdit[m_row]);
m_pTabWidgt->setCellWidget(m_row,3,m_pComBoxSamp[m_row]);
m_pTabWidgt->setCellWidget(m_row,4,m_pSpinBoxGain[m_row]);
m_pTabWidgt->setCellWidget(m_row,5,m_pBtnSet[m_row]);
}
}`
void DlgParameter::slot_del()
{
int m_row = m_pTabWidgt->rowCount();
// int m_currentRow = m_pTabWidgt->currentRow();
// qDebug()<<“slot_delTime::m_row”<<m_row;
// qDebug()<<“slot_delTime::m_currentRow”<<m_currentRow;
if(m_row>1)
{
// if(m_currentRow!=-1)
// {
m_pTabWidgt->removeRow(m_row-1);
m_pTabWidgt->setCurrentItem(NULL);
// }
qDebug()<<"1";
}
}