0
点赞
收藏
分享

微信扫一扫

QTableWIdget有控件时关于删除一行再添加一行时报错的问题(removeRow&insertRow)

今天你读书了吗 2022-04-15 阅读 70
qtc++

今天做公司项目,想写个动态添加删除表格,表格里涉及到控件,我是先初始化好我需要的控件,然后动态添加到表格中,当我用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";

}
}
在这里插入图片描述

举报

相关推荐

0 条评论