• 4632阅读
  • 9回复

[提问]Qt Ui界面之间的转换,为什么会出现问题 [复制链接]

上一主题 下一主题
离线zyc52351484
 
只看楼主 倒序阅读 楼主  发表于: 2012-02-07
一个界面跳转到另外一个界面,不知为何会出现问题,程序异常终止,求各位大侠帮帮忙,代码马上传上去,谢谢拉
离线zyc52351484
只看该作者 1楼 发表于: 2012-02-07
我还是贴代码吧,因为网速太慢了...
**************************************头文件**************************************
#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui>
#include <QWidget>

#include "ui_form1.h"
#include "ui_form2.h"

class Widget : public QWidget
{
    Q_OBJECT

public:
     Widget(QWidget *parent = 0);

public slots:
    void nextUi();

private:
    Ui::Form1 *form1ui;
    Ui::Form2 *form2ui;
};

#endif // WIDGET_H

*************************************CPP************************************
#include "widget.h"

Widget::Widget(QWidget * parent):
QWidget(parent)
{
    QWidget *u1 = new QWidget;
    form1ui->setupUi(u1);

    QWidget *u2 = new QWidget;
    form2ui->setupUi(u2);

    connect(form1ui->pushButton, SIGNAL(clicked()), this, SLOT(nextUi()));
}

void Widget::nextUi()
{
    QWidget *u2 = new QWidget;
    form2ui->setupUi(u2);
    u2->show();
    this->close();
}

******************************************Main*************************************
#include <QtGui/QApplication>
#include "widget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    Widget *w = new Widget;
    w->show();

    return a.exec();
}
离线kimtaikee

只看该作者 2楼 发表于: 2012-02-07
自己设断点跟踪调试

离线青春岁月

只看该作者 3楼 发表于: 2012-02-07
重定义了!
go!   go!  go!  go!
离线zyc52351484
只看该作者 4楼 发表于: 2012-02-07
回 3楼(青春岁月) 的帖子
求具体位置,我是菜鸟一个...
离线zyc52351484
只看该作者 5楼 发表于: 2012-02-07
回 2楼(kimtaikee) 的帖子
求详细讲解,不会哦~
离线浪漫天使
只看该作者 6楼 发表于: 2012-02-08
form1ui
form2ui
没有new你就用。
离线zyc52351484
只看该作者 7楼 发表于: 2012-02-08
回 6楼(浪漫天使) 的帖子
太感谢了,在我new过以后,我想让form2跳转回来,加上了槽之后,但是跳转不了请再帮忙看看,谢谢
#include "widget.h"

Widget::Widget(QWidget * parent):
QWidget(parent),
    form1ui(new Ui::Form1),
    form2ui(new Ui::Form2)
{
    form1ui->setupUi(this);

    QWidget *u2 = new QWidget;
    form2ui->setupUi(u2);

    connect(form1ui->pushButton, SIGNAL(clicked()), this, SLOT(nextUi2()));
    connect(form2ui->pushButton, SIGNAL(clicked()), this, SLOT(nextUi1()));
}

void Widget::nextUi2()
{
    QWidget *u2 = new QWidget;
    form2ui->setupUi(u2);
    u2->show();
    this->close();
}

void Widget::nextUi1()
{
    QWidget *u1 = new QWidget;
    form1ui->setupUi(u1);
    u1->show();
    this->close();
}
离线浪漫天使
只看该作者 8楼 发表于: 2012-02-09
用纸和笔理清一下自己的逻辑先。
离线zyc52351484
只看该作者 9楼 发表于: 2012-02-09
回 8楼(浪漫天使) 的帖子

求解
快速回复
限100 字节
 
上一个 下一个