【发布时间】:2018-06-28 05:46:44
【问题描述】:
我是一个新手,我正在编写一个头文件,我在其中声明一个将发出信号的类。所以我用一个构造函数声明我的类,两个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
对我来说,代码看起来不错。但作为新手。我无法弄清楚这个问题。所以,请帮我解决这个问题。
【问题讨论】:
-
您可能缺少一个标头,该标头执行使
signals:发挥作用的魔法。 -
我们开始吧。 From QT Documentation: "所有包含信号或槽的类必须在其声明的顶部提及
Q_OBJECT。它们还必须(直接或间接)派生自QObject" -
@user4581301 :谢谢,我缺少#include
来声明。它现在正在工作