Добрый день. Сделал в одном классе слот, в другом сигнал и связал их. Проект собирается, но в выводе приложения появляется следующая запись:
QObject::connect: No such signal
Код с соединением сигнала и слота
#include "UIManager.h" // в этот хедер включён ProjectTree.h
#include "SolutionManager.h"
#include "AlgorithmManager.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
m_Width(1200),
m_Height(650)
{
ui->setupUi(this);
this->setCentralWidget(UIManager::GetInstance()->GetParentWidget());
QObject::connect(UIManager::GetInstance()->GetProjectTree(),
SIGNAL(ProjectTree::AddedSolutionByUser(QString&)),
SolutionManager::GetInstance(),
SLOT(SolutionManager::AddNewSolutionByUser(QString&)));
}
class SolutionManager : public QObject{
Q_OBJECT
// for implementation Singleton
protected:
SolutionManager();
public:
~SolutionManager();
...
static SolutionManager* GetInstance();
private slots:
void AddNewSolutionByUser(QString& name);
};
class ProjectTree : public QWidget{
Q_OBJECT
public:
ProjectTree(QWidget* pwgt = 0);
QTreeWidget* GetParentWidget();
QSplitter* GetSplitter();
private slots:
bool SetProjectName();
void AddNewSolution();
void SetSolutionName();
void RemoveSolution();
void CreateContextMenu(QPoint pos);
void SetCurrentSolution(QTreeWidgetItem*, int);
void ItemCollapsedHandler(QTreeWidgetItem*);
signals:
void AddedSolutionByUser(QString& name);
};