Непонятно, почему вы не можете сохранить виджет QTableView и просто изменить модель, как в вашем коде.Разве представление не обновляется без этой tableView.replace
вещи?
Похоже, не существует прямого API для замены виджета, который вы вставили, на addTab () без прохождения шага удаления вкладки.Но вместо того, чтобы вставлять QTableView напрямую, вы могли бы вместо этого вызвать addTab () для фиктивного виджета, который имеет макет с одним элементом.QStackedLayout, например:
QWidget* dummy = new QWidget;
QStackedLayout stackedLayout = new QStackedLayout;
stackedLayout->addWidget(tableView);
dummy->setLayout(stackedLayout);
tabWidget->addTab(dummy);
Затем, когда вы захотите заменить tableView на новый:
QWidget* dummy = tabWidget->currentWidget();
QStackedLayout newStackedLayout = new QStackedLayout;
newStackedLayout->addWidget(newTableView);
delete dummy->layout();
dummy->setLayout(newStackedLayout);
Мне все еще интересно, что это покупает вас, если вы повторно используетестарый вид таблицы не может сделать.