Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <QWidget>
- #include <QApplication>
- #include <QMainWindow>
- #include <QStackedWidget>
- #include <QPushButton>
- #include <QString>
- struct Panel : public QWidget {
- QPushButton *btn;
- Panel(QString text, QWidget *parent = nullptr) : QWidget(parent) {
- btn = new QPushButton(text, this);
- btn->show();
- }
- };
- struct Panel1 : public Panel {
- Panel1(QWidget *parent = nullptr) : Panel("Hello", parent) { }
- };
- struct Panel2 : public Panel {
- public:
- Panel2(QWidget *parent = nullptr) : Panel("World", parent) { }
- };
- class MainWindow : public QMainWindow {
- Panel1 *panel1;
- Panel2 *panel2;
- QStackedWidget *stackedWidget;
- public:
- MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
- resize(640, 480);
- setFixedSize(size());
- panel1 = new Panel1(this);
- panel2 = new Panel2(this);
- stackedWidget = new QStackedWidget(this);
- stackedWidget->show();
- stackedWidget->addWidget(panel1);
- stackedWidget->addWidget(panel2);
- stackedWidget->setCurrentWidget(panel1);
- connect(panel1->btn, &QPushButton::clicked, [=]() {
- stackedWidget->setCurrentWidget(panel2);
- });
- connect(panel2->btn, &QPushButton::clicked, [=]() {
- stackedWidget->setCurrentWidget(panel1);
- });
- }
- };
- class App : public QApplication {
- MainWindow *mainWindow;
- public:
- App(int argc, char **argv) : QApplication(argc, argv) {
- mainWindow = new MainWindow();
- mainWindow->show();
- }
- };
- int main(int argc, char *argv[]) {
- App app(argc, argv);
- return app.exec();
- }
Advertisement
Add Comment
Please, Sign In to add comment