我试过了, dbzhang800 说的办法可以实现我要的效果,不过请问可不可以不是显示一个/隐藏一个,而是显示一个,删除一个,每次layout里只有一个页面呢?
NSMapCanvas::NSMapCanvas(QWidget *parent , Qt::WFlags flags )
:QWidget( parent, flags)
{
layout = new QVBoxLayout;
layout->setContentsMargins( 0,0,0,0);
InitMapviewpage();
layout->addWidget(m_mappage);
setLayout(layout);
}
void NSMapCanvas::Guidepage()
{
InitGuidepage();
layout->removeWidget(m_mappage);
layout->addWidget(m_guidepage);
delete m_mappage;
}
void NSMapCanvas::BacktoMapviewpage()
{
InitMapviewpage();
layout->addWidget(m_mappage);
layout->removeWidget(m_guidepage);
delete m_guidepage;
}
我发现这样的话,第一次跳转是可以的,可以从m_mappage跳转到m_guidepage,但是再跳转回来的时候,m_mappage这个页面是显示了,但是父页面不见了,也就是底下我画图的那个页面不见了,没有图了,请问这个是怎么回事呢?