欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

用 qstackedwidget,如何实现窗口切换

更新时间: 2014-01-05 02:44:17 责任编辑: Author_N1

 

用 QStackedWidget,怎么实现窗口切换?
这里有两个界面,一个是显示go 的按钮 ,一个是显示back 的按钮,,我想按go 按钮 就进入到 back 这个按钮界面,然后在按back 就返回到go 这个按钮,因为按钮也是继承QWidget的,所以也可以作为一个widget。

现在的问题,就是按go 按钮没反应啊,
我现在把代码贴出来了,我怎么也找不出哪里出错了,但 按按钮又没反应,纠结啊

//=====================================
#include<QWidget>

class QPushButton;
class QStackedWidget;

class MeunBt : public QWidget
{
    Q_OBJECT
public:
    MeunBt(QWidget *parent = 0);

    QPushButton  *go;
    QPushButton  *back;
    QStackedWidget *stack;
public slots:
        void change1();
        void change2();
};

//==========================================
#include<QtGui>
#include "meun.h"

MeunBt::MeunBt(QWidget *parent)
         : QWidget(parent)
{
    setWindowTitle(tr("STACKED"));

    go = new QPushButton(tr("go"));
    back = new QPushButton(tr("back"));

    QHBoxLayout *mainLayout = new QHBoxLayout;
    stack = newQStackedWidget(this);
    stack->addWidget(go);
    stack->addWidget(back);
    mainLayout->addWidget(stack);
    setLayout(mainLayout);

    connect(go,SIGNAL(clicked()),stack,SLOT(change1()));
    connect(back,SIGNAL(clicked()),stack,SLOT(change2()));
}

void MeunBt::change1()
{
    stack->setCurrentIndex(1);
}

void MeunBt::change2()
{
    stack->setCurrentIndex(0);
}

--参考方法--
因为我也是QT新手,斗胆改了两下代码,不知道是否正确。

  connect(go,SIGNAL(clicked()),this,SLOT(change1()));
  connect(back,SIGNAL(clicked()),this,SLOT(change2()));

--参考方法--
因为我也是QT新手,斗胆改了两下代码,不知道是否正确。

  connect(go,SIGNAL(clicked()),this,SLOT(change1()));
  connect(back,SIGNAL(clicked()),this,SLOT(change2()));

--参考方法--
楼上说的是个问题 QStackedWidget 没有 change1()槽函数,MeunBt才有。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:44:17
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13773/
本文WWW.DOC100.NET DOC100.NET版权所有。