
Originally Posted by
jpn
Just place a stacked widget on your form as proposed. Then make each page of the stack contain a different custom widget (which all load their own ui files). Switching from one custom widget to another is only a matter of switching the current widget in the stack.
Actually I put set of plain widgets over each other @ my MainWindow .
Then I promote each one to the proper .ui .
Then @ my main : I've created instance of QStackedWidget & put into it the plain widgets that I've just created .
Problems :
- Program doesn't run even an .exe is generated + Exception is appeared
- I was thinking that after creating my instance of StackedObject, I'll use it to ctrl which UI is going to be appeared , How could I achieve smth like that ?!!
My Main 's code :
#include <QApplication>
#include "ui_MainWindow.h"
#include "MainApp.cpp"
#include <QStackedWidget>
int main(int argc, char *argv[])
{
Ui_MainForm ui;
StackedWidget->addWidget(ui.MiniWidget);
StackedWidget->addWidget(ui.MiniWidget2);
MainApp Widget;
Widget.show();
return app.exec();
}
#include <QApplication>
#include "ui_MainWindow.h"
#include "MainApp.cpp"
#include <QStackedWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QStackedWidget *StackedWidget = new QStackedWidget;
Ui_MainForm ui;
StackedWidget->addWidget(ui.MiniWidget);
StackedWidget->addWidget(ui.MiniWidget2);
MainApp Widget;
Widget.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
-------------------------------------------------------------------------
MainWindow's generated code that contains the plain widgetS :
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QWidget>
#include <customslot2.h>
#include "customslot.h"
QT_BEGIN_NAMESPACE
class Ui_MainForm
{
public:
// These are the Plain Widgets I created
CustomSlot *MiniWidget;
CustomSlot2 *MiniWidget2;
{
if (MainForm->objectName().isEmpty())
MainForm
->setObjectName
(QString::fromUtf8("MainForm"));
MainForm->resize(530, 402);
MiniWidget = new CustomSlot(MainForm);
MiniWidget
->setObjectName
(QString::fromUtf8("MiniWidget"));
MiniWidget
->setGeometry
(QRect(39,
29,
451,
301));
MiniWidget2 = new CustomSlot2(MiniWidget);
MiniWidget2
->setObjectName
(QString::fromUtf8("MiniWidget2"));
MiniWidget2
->setGeometry
(QRect(0,
110,
461,
301));
retranslateUi(MainForm);
} // setupUi
void retranslateUi
(QWidget *MainForm
) {
Q_UNUSED(MainForm);
} // retranslateUi
};
namespace Ui {
class MainForm: public Ui_MainForm {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QWidget>
#include <customslot2.h>
#include "customslot.h"
QT_BEGIN_NAMESPACE
class Ui_MainForm
{
public:
// These are the Plain Widgets I created
CustomSlot *MiniWidget;
CustomSlot2 *MiniWidget2;
void setupUi(QWidget *MainForm)
{
if (MainForm->objectName().isEmpty())
MainForm->setObjectName(QString::fromUtf8("MainForm"));
MainForm->resize(530, 402);
MiniWidget = new CustomSlot(MainForm);
MiniWidget->setObjectName(QString::fromUtf8("MiniWidget"));
MiniWidget->setGeometry(QRect(39, 29, 451, 301));
MiniWidget2 = new CustomSlot2(MiniWidget);
MiniWidget2->setObjectName(QString::fromUtf8("MiniWidget2"));
MiniWidget2->setGeometry(QRect(0, 110, 461, 301));
retranslateUi(MainForm);
QMetaObject::connectSlotsByName(MainForm);
} // setupUi
void retranslateUi(QWidget *MainForm)
{
MainForm->setWindowTitle(QApplication::translate("MainForm", "Main Form", 0, QApplication::UnicodeUTF8));
Q_UNUSED(MainForm);
} // retranslateUi
};
namespace Ui {
class MainForm: public Ui_MainForm {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
Thanks
Bookmarks