Guest User

Untitled

a guest
Jan 15th, 2024
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. #include <QWidget>
  2. #include <QApplication>
  3. #include <QMainWindow>
  4. #include <QStackedWidget>
  5. #include <QPushButton>
  6. #include <QString>
  7.  
  8.  
  9. struct Panel : public QWidget {
  10.     QPushButton *btn;
  11.     Panel(QString text, QWidget *parent = nullptr) : QWidget(parent) {
  12.       btn = new QPushButton(text, this);
  13.       btn->show();
  14.     }
  15. };
  16.  
  17. struct Panel1 : public Panel {
  18.     Panel1(QWidget *parent = nullptr) : Panel("Hello", parent) { }
  19. };
  20.  
  21. struct Panel2 : public Panel {
  22.   public:
  23.     Panel2(QWidget *parent = nullptr) : Panel("World", parent) { }
  24. };
  25.  
  26. class MainWindow : public QMainWindow {
  27.   Panel1 *panel1;
  28.   Panel2 *panel2;
  29.   QStackedWidget *stackedWidget;
  30.  
  31.   public:
  32.     MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
  33.       resize(640, 480);
  34.       setFixedSize(size());
  35.       panel1 = new Panel1(this);
  36.       panel2 = new Panel2(this);
  37.       stackedWidget = new QStackedWidget(this);
  38.       stackedWidget->show();
  39.       stackedWidget->addWidget(panel1);
  40.       stackedWidget->addWidget(panel2);
  41.       stackedWidget->setCurrentWidget(panel1);
  42.  
  43.       connect(panel1->btn, &QPushButton::clicked, [=]() {
  44.         stackedWidget->setCurrentWidget(panel2);
  45.       });
  46.       connect(panel2->btn, &QPushButton::clicked, [=]() {
  47.         stackedWidget->setCurrentWidget(panel1);
  48.       });
  49.     }
  50. };
  51.  
  52. class App : public QApplication {
  53.   MainWindow *mainWindow;
  54.  
  55.   public:
  56.     App(int argc, char **argv) : QApplication(argc, argv) {
  57.       mainWindow = new MainWindow();
  58.       mainWindow->show();
  59.     }
  60. };
  61.  
  62. int main(int argc, char *argv[]) {
  63.     App app(argc, argv);
  64.  
  65.     return app.exec();
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment