У меня есть класс последовательной связи, и я хочу отправить сигнал, когда получу рекомендацию, потому что прием данных завершен. В результате этого сигнала я вызываю графический метод. Соединение установлено, но приемный слот не прослушивает сигнал.
синглтон-класс:
class SerialCommunication : public QObject{
Q_OBJECT public:
static SerialCommunication & GetInstance() ;
....
QVector<double> ReadDataVector ;
частное:
SerialCommunication() ;
static SerialCommunication * Instance ;
QList<QSerialPortInfo> PortList ;
bool IsOpen = false ; ....
частных слотов:
void ReceivedData ();
сигналы:
void DataIsDone ();
};
Слот ReceivedData:
void SerialCommunication::ReceivedData()
{
...
for(;true;)
{
....
switch (Commend) {
case Data_Reply:
qDebug()<<"Data Reply" ;
AppendToUint16Vector(ReadDataVector,Package);
break;
case Data_Reply_Done:
qDebug()<<" Data_Reply_Done" ;
MsgBox.information(0,"Transfer information. ","The data transfer is complete \n Please click draw button.");
emit SerialCommunication::GetInstance().DataIsDone();
break;
default:
ClearBuffer();
qDebug()<<" default" ;
break;
}}}
и соединение здесь
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(&SerialCommunication::GetInstance(),SIGNAL(SerialCommunication::DataIsDone),this,SLOT( GraficSetupAndInit()));
SetupUI();
}
QObject :: connect: ожидаются скобки, сигнализируйте SerialCommunication :: SerialCommunication :: DataIsDone in .. \ Muteferrika \ MainWindow.cpp: 10
QObject :: connect: (имя получателя: 'MainWindow')