Добрый день. Такая странная проблема нарисовалась: я делала сигнал и слот (как обычно это делаю) для двух файлов, но я не могу понять, почему функция слота не работает, будто вообще не вызывается. Буду благодарна, если подскажите, а то уже весь мозг сломала... Все другие сигналы и слоты с файлом Automatic работают хорошо, а тут вобще не выходит. При работе вызываемой функции должно появиться сообщение в дэбаггере, а его нет, то есть строки кода не выполняются.
Вот отрывки моего кода:
automatic.cpp...
public slots:
void free_pallet(QVector<int> to_free_pallet);
signals:
void take_free_pallet(); //сигнал базе данных на считывание свободных мест
database.h#include <automatic.h>
...
private:
Automatic *automatic_wind;
signals:
void send_free_pallet(QVector<int>);
public slots:
void search_free_pallet();
automatic.cpp...
//проверка:
emit take_free_pallet();
qDebug()<<"signal on automatiic";
...
database.cppDataBase::DataBase(QObject *parent) : QObject(parent)
{
qDebug()<<"it work";
automatic_wind = new Automatic();
connect(automatic_wind,&Automatic::take_free_pallet,this,&DataBase::search_free_pallet);
connect(this,&DataBase::send_free_pallet,automatic_wind,&Automatic::free_pallet);
}
...
void DataBase::search_free_pallet(){
qDebug()<<"search";
QVector <int> number_pallet;
QSqlQuery *query = nullptr;
...
emit send_free_pallet(number_pallet);
qDebug()<<"signal on database";
}
Получается, что у меня вообще не вызыватся метод search_free_pallet() в классе DataBase, после того, как я посылаю сигнал take_free_pallet() в Automatic. Не знаю, как проверить, посылает от там что-то или нет (по ощущению будто нет).