Сворачивание окна 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(), но этот метод не сворачивает диалоговое окно, а закрывает его