Как переключаться между окнами туда обратно?

Мне нужно, что-бы по нажатию кнопки открывалось новое окно а mainwindow закрывалось. А во втором окне кнопка должна переводить меня на предыдущее окно закрывая настоящие. Как это можно реализовать?


Ответы (1 шт):

Автор решения: Alexander Chernin

Все довольно просто:

main.cpp:

int main(int argc, char* argv) {
    QApplication a(argc, argv);

    MainWindow window1;
    Window window2;

    QObject::connect(&window1, &MainWindow::showWindow2, [&]() {
        window1.hide();
        window2.show();
    });

    QObject::connect(&window2, &MainWindow::showWindow1, [&]() {
        window2.hide();
        window1.show();
    });
    return a.exec();
}

MainWindow.h:

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget* parent =Q_NULLPTR): QMainWindow(parent) {
        connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::showWindow2);
    }
signals:
    void showWindow2();
}

Window.h:

class Window : public QWidget {
    Q_OBJECT
public:
    Window(QWidget* parent =Q_NULLPTR): QWidget(parent) {
        connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::showWindow1);
    }
signals:
    void showWindow1();
}
→ Ссылка