Это, вероятно, то, что @hyde описывает в комментариях:
В mainwindow.h добавить:
private slots:
void saveMBulb(const QString &filePath);
В главном окне. cpp MainWindow
добавить конструктор:
connect(&dialogSaveMB, &DialogSaveMB::mBulbPathChanged, this, &MainWindow::saveMBulb);
В главном окне. cpp добавить:
void MainWindow::saveMBulb(const QString &filePath)
{
// you could add some checks here, eg. !filePath.isEmpty() or QFileInfo(filePath).exists()
mBulbPrimary.savePrimary(filePath.toStdString());
}
В dialogsavemb.h добавить:
signals:
void mBulbPathChanged(const QString &filePath) const;
В диалоге сохранения. cpp DialogSaveMB
конструктор, изменить:
//connect(ui->pushButton_save, SIGNAL(clicked(bool)), this, SLOT(saveMBulb(filePath)));
connect(ui->pushButton_save, &QPushButton::clicked, this, [this]() {
emit mBulbPathChanged(ui->lineEdit_filePath->text());
});
Вы не должны включить minwindow.h
в код DialogSaveMB
. В любом случае, это плохая практика, поскольку она создает циклическую зависимость (MainWindow нужен заголовок диалога, а диалогу нужен заголовок MainWindow - не идеально).
И mBulbPrimary
не нужно публиковать c.