class shot:public QLabel
{
Q_OBJECT
signals:
void del_shot(shot*);
};
class Widget : public QWidget
{
Q_OBJECT
public slots:
void del(shot*);
};
void Widget::keyPressEvent(QKeyEvent *event)
{
if(event->key()==Qt::Key_Control)
{
shot *a = new shot(int(u->getdir()),u->getX(),u->getY(),this);
connect(a,SIGNAL(del_shot(shot*)),this,SLOT(del(shot*)));
}
}
void shot::move()
{
switch(Dir)
{
case U:
if(Y-speed>0)
{
Y=Y-speed;
// switch简略写了,只写了向上走(U),其他情况都类似
}
else
emit del_shot(this);
break;
}
}
编译报错:
moc_widget.obj:-1: 错误:LNK2019: 无法解析的外部符号 "public: void __thiscall Widget::del(class shot *)" (?del@Widget@@QAEXPAVshot@@@Z),该符号在函数 "private: static void __cdecl Widget::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" (?qt_static_metacall@Widget@@CAXPAVQObject@@W4Call@QMetaObject@@HPAPAX@Z) 中被引用
debug\tobe_label.exe:-1: 错误:LNK1120: 1 个无法解析的外部命令
代码就是添上如上信号和槽才报错的,是什么问题呢?求教
------解决方案--------------------
没人知道吗?
------解决方案--------------------
我也遇到一样的问题,求大神帮忙啊!
------解决方案--------------------
我也遇到了同样的问题,请解决了没有啊?