Сворачивание окна QDialog, которое привязано к родителю

В основном проекте при определенном сигнале мне нужно сворачивать окно QDialog, которое создается с привязкой к главному виджету.

Тестовый проект для понимания

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    void hideDialogWindow();

private slots:
    void on_openDialogBtn_clicked();

private:
    Ui::MainWindow *ui;
    QDialog* dialogWindow;
};
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
    delete dialogWindow;
}

void MainWindow::hideDialogWindow()
{
    if (dialogWindow){
        // showMinimaized как раз свернет окно, но не закроет в отличии от hide()
        dialogWindow->showMinimized();
    }
}

void MainWindow::on_openDialogBtn_clicked()
{
    /* когда передаю родителя, при сворачивании через метод showMinimized() сворачивается и родитель */
    /* если же я создаю диалоговое окно обособлено без указания родителя, сворачивается только создаваемое окно */
    dialogWindow = new QDialog(this);
    QPushButton* btnDialog = new QPushButton("test", dialogWindow);
    dialogWindow->open();
    connect(btnDialog, &QPushButton::clicked, this, &MainWindow::hideDialogWindow);
}

Убрать привязку диалогового окна при создании нельзя, в данный момент я использую метод hide(), но этот метод не сворачивает диалоговое окно, а закрывает его


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