[SOLVED] how to link a form(.ui) to another form using push button
-
Hi,
here i have used menubar instead of QPushbutton so u try to understand the concept and do it in your own way.....
mdiwindow.cpp@#include "mdiwindow.h"
#include "ui_mdiwindow.h"
#include <QMessageBox>
#include <QVariant>
#include <QString>
MDIWindow::MDIWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MDIWindow)
{ ui->setupUi(this);
workspace = new QWorkspace;
setCentralWidget(workspace);connect(ui->actionChild1,SIGNAL(triggered()),this,SLOT(OpenChild1())); connect(ui->actionChild2,SIGNAL(triggered()),this,SLOT(OpenChild2())); //connect(&cw1,SIGNAL(ChildWindow1Closed()),this,SLOT(StatusUpdate()));
connect(ui->actionChild_window_status,SIGNAL(triggered()),SLOT(ChildStatus()));
connect(ui->actionActivated_Window,SIGNAL(triggered()),SLOT(FindActivatedWindow()));
connect(ui->actionChild_Window_Count,SIGNAL(triggered()),SLOT(FindChildCount()));}
MDIWindow::~MDIWindow()
{
delete ui;
}
void MDIWindow::FindChildCount()
{
//Type Conversion from int to string
int a =workspace->windowList().count();
QString str;
str=QVariant(a).toString();
str=QString::number(a,16);
statusBar()->showMessage("Child Window Count is" + str );
}
void MDIWindow::StatusUpdate()
{}
void MDIWindow::FindActivatedWindow()
{
if(!workspace->windowList().isEmpty())
statusBar()->showMessage(workspace->activeWindow()->windowTitle() + " is Activated Now " );
else
statusBar()->showMessage("No Active Child Window");
}
void MDIWindow::ChildStatus()
{
if(workspace->windowList().isEmpty())
{
statusBar()->showMessage(" No Child Window Opened");
}
else
{
statusBar()->showMessage("Child Window Opened");
}
}
void MDIWindow::OpenChild1()
{
if(!ObjChild1->isVisible())
{
ObjChild1 = new ChildWindow1;
}
workspace->addWindow(ObjChild1);
ObjChild1->setWindowTitle("Child1");
ObjChild1->show();
statusBar()->showMessage(workspace->activeWindow()->windowTitle() + " Opened Just Now");
}
void MDIWindow::OpenChild2()
{
if(!ObjChild2->isVisible())
{
ObjChild2 = new ChildWindow2;
}
workspace->addWindow(ObjChild2);
ObjChild2->setWindowTitle("Child2");
ObjChild2->show();
//statusBar()->showMessage("Child Window opened");
statusBar()->showMessage(workspace->activeWindow()->windowTitle() + " Opened Just Now");
}
@mdiwindow.h
@#ifndef MDIWINDOW_H
#define MDIWINDOW_H#include <QMainWindow>
#include "childwindow1.h"
#include "childwindow2.h"
#include <QWorkspace>namespace Ui {
class MDIWindow;
}class MDIWindow : public QMainWindow
{
Q_OBJECTpublic:
explicit MDIWindow(QWidget *parent = 0);
~MDIWindow();//ChildWindow1 cw1;
private slots:
void OpenChild1();
void OpenChild2();
void ChildStatus();
void FindActivatedWindow();
void FindChildCount();
public slots:
void StatusUpdate();private:
Ui::MDIWindow ui;
QWorkspace workspace;
ChildWindow1 ObjChild1;
ChildWindow2 ObjChild2;
};#endif // MDIWINDOW_H
@