• 7698阅读
  • 6回复

特别的Qt页面跳转问题 [复制链接]

上一主题 下一主题
离线yxhappy
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-21
请教大家一个问题,我现在有个页面跳转不了,请大家帮忙看看。
void NSMapCanvas::Guidepage()
{
    //hide();
    guide_ui->setupUi(this);
    if ( mapview_ui )
    {
        delete mapview_ui;
        mapview_ui = NULL;
    }
    update();
    show();
}
NSMapCanvas::NSMapCanvas(QWidget *parent , Qt::WFlags flags)
:QWidget(parent,flags)
{
       mapview_ui->setupUi(this);
}
mapview_ui和guide_ui是两个根据Qt Designer自动生成不同的ui页面的类的对象。
我连接了mapview_ui里面的一个button的click事件,来调用Guidepage(),但是很奇怪,guide_ui这个ui页面显示不了,这是为什么呢?如果把那句执行Guidepage()里的hide(),就能看到guide_ui页面,但是mapview_ui同时也显示出来了,我不是已经把它给删除了吗?谁能帮忙解释一下吗?由于我这里的需求比较特殊,也就是必须让mapview_ui和guide_ui的父对象都为当前对象,所以我才要这么做。
离线dbzhang800

只看该作者 1楼 发表于: 2009-12-21
你介绍一下要做什么吧,或者实现什么效果。

QStackedWidget 能用么?
离线yxhappy
只看该作者 2楼 发表于: 2009-12-21
是这样的,我要在一个Qwidget上绘图,两个ui页面都以这个Qwidget为父对象,这样就可以只更换ui,就可以实现页面切换,且不用更换绘制的代码,即可看到我绘制的图。也就是说,父widget不变,只是更换上面的一些子控件,比如button,label,不知道我说清楚了没有
离线dbzhang800

只看该作者 3楼 发表于: 2009-12-21
你的两个 ui 都写成两个 QWidget 的类,然后 Layout 布局到你的 “父对象上”,然后显示一个/隐藏一个?
离线yxhappy
只看该作者 4楼 发表于: 2009-12-21
这样的话,不会遮挡我父QWidget上的图吗?我两个ui页面都是半透明的,要求透过ui页面,能看到下面全部的图。如果都写成QWidget类,那么ui的父对象是两个不同的QWidget了吧?不好意思啊,新手,不太懂,能解释的详细点吗?谢谢!~
离线yxhappy
只看该作者 5楼 发表于: 2009-12-22
up!up!
大家还有别的看法的没呀?help!
离线yxhappy
只看该作者 6楼 发表于: 2009-12-22
我试过了, 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这个页面是显示了,但是父页面不见了,也就是底下我画图的那个页面不见了,没有图了,请问这个是怎么回事呢?
快速回复
限100 字节
 
上一个 下一个