一、问题
想在双击tabwidget的tab之后弹出对应的widget,关闭widget后将widget放回tabwidget。
遇到以下两个问题:
1、取出widget:调用tabwidget->removeTab之后,如果直接show被remove的widget A,widget A会直接叠在tabwidget上,此时widget A的parent仍然是tabwidget。如果将widget A放到另外一个widget B或者window中,则widget A既没有出现在tabwidget上,也没有出现在新的widget B或者window上。
2、放回widget:在可以取出widget之后,重写widget的closeEvent,在closeEvent中emit信号,在收到信号后调用tabwidget->addTab重新添加widget,出现crash。
二、解决方法
1、取出widget:经搜索后可知,widget从tabwidget上remove之后,需要在show之前setparent。(参考这里)
// 这里的parent要是tabwidget的parent,
// 否则之后放回tabwidget时会错位,目前暂时未找到原因
// flag