QT信号槽
总是出现这样的编译错误:为什么signals会变成无法解析的外部命令呢?
#ifndef CONTROL_H
#define CONTROL_H
#include "ui_control.h"
class control : public QWidget,public core_zhi
{
Q_OBJECT
signals:
void P_1_change(double value);
void P_2_change(double value);
protected:
double show_time;//一共显示的时间长度
double limit_max;//纵坐标上限
double limit_min;//纵坐标下限
short point_num;//一共所能记录的点的上限
bool init_flag;
std::list<plot_point_curves> point_list;
QSemaphore *guard_list;
public:
double P;//输入的功率
control(QString &name_input,short &ID_output,QWidget *parent=0);
~control();
void set_show_time(double x);
void paintEvent(QPaintEvent *x);
double get_time();
void input(boost::shared_ptr<std::list<double>> x);
void set_point_num(short x);
void set_limit(std::vector<double> x);
private:
Ui::control ui;
public slots:
void range_down();
void range_up();
void P_changed(int);
};
#endif // CONTROL_H
control.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall control::metaObject(void)const " (?metaObject@control@@UBEPBUQMetaObject@@XZ)
control.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall control::qt_metacast(char const *)" (?qt_metacast@control@@UAEPAXPBD@Z)
control.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall control::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@control@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
control.obj : error LNK2019: 无法解析的外部符号 "protected: void __thiscall control::P_2_change(double)" (?P_2_change@control@@IAEXN@Z),该符号在函数 "public: void __thiscall control::P_changed(int)" (?P_changed@control@@QAEXH@Z) 中被引用
control.obj : error LNK2019: 无法解析的外部符号 "protected: void __thiscall control::P_1_change(double)" (?P_1_change@control@@IAEXN@Z),该符号在函数 "public: void __thiscall control::P_changed(int)" (?P_changed@control@@QAEXH@Z) 中被引用
[解决办法]
_moc.cpp文件有生成和编译吗