我是新手,正在编写一个头文件,在其中声明一个将发出信号的类。因此,我使用构造函数声明了我的类,并使用了两个int
变量,它们分别由private
定义,然后定义了signal
。这是我的.h
文件:
#ifndef KEYBOARD_H
#define KEYBOARD_H
class KeyBoard{
public:
KeyBoard();
int keyboard_update();
private:
int level;
int sub_level;
signals:
void send_to_MBU(QString message);
};
#endif
现在在.cpp
部分中,我只是在构造函数中发出一个信号。这是.cpp
部分中的代码:
#include "KeyBoard.h"
KeyBoard::KeyBoard()
{
level = 0;
sub_level = 0;
emit send_to_MBU("PRESS ENTER TO SELECT TRAIN"):
}
int KeyBoard::keyboard_update()
{
return 1;
}
但是当我编译代码时,我的信号声明中出现了这个错误:
error C2062: type 'void' unexpected
对我来说,代码看起来不错。但是,作为新手。我不知道这个问题。因此,请帮助我解决此问题。
答案 0 :(得分:1)
需要在#include <QObject>
文件中声明.h
才能成功使用QT中的信号。那是头文件中唯一缺少的东西。新代码如下所示:-
#ifndef KEYBOARD_H
#define KEYBOARD_H
#include <QObject>
class KeyBoard : QObject{
Q_OBJECT
public:
KeyBoard();
int keyboard_update(char* recieved_key);
private:
int level;
int sub_level;
signals:
void send_to_MBU(QString message);
};
#endif