初学qt,Qt QTableWidget cellwidget中插入了图表后,触发cellclicked,原图中的widget不显示
QDialog *dlg=new QDialog;
QVBoxLayout *dlg_layout=new QVBoxLayout ;
QWidget *w=new QWidget;
QWidget *old_w=new QWidget;
QPushButton *btn_save_pic=new QPushButton;
connect(ui->chart1,&QTableWidget::cellClicked,this,&MainWindow::show_dialog);
void MainWindow::show_dialog(int row, int column)
{
QTableWidget* tabvgt=qobject_cast(sender());
qDebug()<cellWidget(row,column);
if(w!=old_w)
{
if(layout_cnt!=0)
{
dlg_layout->replaceWidget(old_w,w);
}
else
{
dlg_layout->addWidget(btn_save_pic,1);
dlg_layout->addWidget(w,1);
dlg->setLayout(dlg_layout);
}
}
qDebug()<<QString("layout_cnt=%1").arg(layout_cnt);
layout_cnt++;
old_w=w;
dlg->show();
}
运行结果及报错内容
点击tablewidget的cell以后原来插入的widget就没了