Почему слот не реагирует на сигнал?
Я хочу, чтобы в MainWindow::slotOpenFormChoice при выбросе сигнала FormChoice::updateInfo() срабатывал слот FormChoice::slotUpdateInfo(). Судя по отладчику сигнал вырабатывается, но останова в слот так и не приходит ( Думаю, что Вам стоит обратить внимание только на последние строчки кода в mainwindow.cpp . я готов к броскам камнями, только объясните, пожалуйста!! Если подытожить, то наверное я не очень понимаю как правильно связать сигнал с слотом. Я пробовал разные комбинации, но ничего не вышло
formchoice.h:
class FormChoice : public QDialog
{
Q_OBJECT
public:
explicit FormChoice(QDialog *parent = 0);
~FormChoice();
private slots:
void slotUpdateInfo();
signals:
void updateInfo();
private:
Ui::FormChoice *ui;
};
formchoice.cpp:
FormChoice::FormChoice(QDialog *parent) :
QDialog(parent),
ui(new Ui::FormChoice)
{
ui->setupUi(this);
this->setWindowTitle("Выбор записи");
//this->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint );
}
void FormChoice::slotUpdateInfo()
{
int a = 0;//ЗДЕСЬ ХОЧУ ОСТАНОВИТЬСЯ
}
FormChoice::~FormChoice()
{
delete ui;
}
mainwindow.h:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QObject* ptrBox, QWidget *parent = 0);
~MainWindow();
private slots:
void slotOpenFormChoice();
private:
Ui::MainWindow *ui;
FormChoice* formchoice;
};
mainwindow.cpp:
MainWindow::MainWindow(QObject* ptrBox, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
formchoice(new FormChoice),
{
ui->setupUi(this);
this->setWindowTitle("Наблюдатель");
/* formchoice = std::make_unique<FormChoice>();*/
QAction *actionSelectZap = ui->menuBar->addAction(tr("Выбор записи"));
connect(actionSelectZap,SIGNAL(triggered()),this,SLOT(slotOpenFormChoice()));
show();
}
void MainWindow::slotOpenFormChoice()
{
QObject::connect(this, SIGNAL(FormChoice::updateInfo()),formchoice, SLOT(FormChoice::slotUpdateInfo()));
emit formchoice->updateInfo();
formchoice->exec();
}