算解决了 这样弄大概也满足需求 就是不知道还有没有更好的方法
if(clickflag==0){
dock = new QDockWidget(tr("test"), this);
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
dock->setWidget(ui->tab);
dock->setFloating(true);
dock->show();
clickflag++;
}else {
ui->testTab->insertTab(0,ui->tab,"test");
//dock->hide();
delete dock;
dock=nullptr;
clickflag=0;
}