PDA

View Full Version : Load one form on button click



vinithr
16th April 2012, 17:06
hi,

I am new to QT . I am trying to display one form from other form and hide the first form.

I have created a project that includes the following files

form1.h,form2.h,form1.cpp,form2.cpp,main.cpp,form1 .ui,form2.ui
i am adding the source code over here.

form1.h:


#ifndef FORM1_H
#define FORM1_H

#include <QMainWindow>

namespace Ui {
class form1;
}

class form1 : public QMainWindow
{
Q_OBJECT

public:
explicit form1(QWidget *parent = 0);
~form1();

public slots:
void ButtonClicked();
private:
Ui::form1 *ui;
};

#endif // FORM1_H


form2.h:


#ifndef FORM2_H
#define FORM2_H

#include <QMainWindow>

namespace Ui {
class form2;
}

class form2 : public QMainWindow
{
Q_OBJECT

public:
explicit form2(QWidget *parent = 0);
~form2();
public slots:
void ButtonClicked();
private:
Ui::form2 *ui;
};

#endif // FORM2_H


form1.cpp:

#include "form1.h"
#include "ui_form1.h"
#include "form2.h"

form1::form1(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::form1)
{
ui->setupUi(this);
}

form1::~form1()
{
delete ui;
}

void form1::ButtonClicked()
{
form2 f2;
this->hide();
f2.show();
}


form2.cpp:


#include "form2.h"
#include "ui_form2.h"
#include"form1.h"

form2::form2(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::form2)
{
ui->setupUi(this);
}

form2::~form2()
{
delete ui;
}

void form2::ButtonClicked()
{
form1 f1;
this->hide();
f1.show();

}

main.cpp:


#include <QtGui/QApplication>
#include "form1.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
form1 w;
w.show();

return a.exec();
}


While doing thisthe form1 is getting hide and form 2 is not displaying.

Could you please tell me what am missing..

Thanks in Advance

Regards
vinith

wysota
16th April 2012, 17:54
http://www.qtcentre.org/faq.php?faq=qt_general_category#faq_qt_designer_2f orms
http://www.qtcentre.org/faq.php?faq=qt_general_category#faq_qt_stack_creat ed_widgets

vinithr
16th April 2012, 18:47
t worked for me.

Thanks