原文:Qt编程之信号与槽-------unresolved external symbol "public: virtual struct QMetaObject const * __thiscall XX::metaObject(void)const

原因是加入Q OBJECT这个macro的类,被编译的时候就要用到moc这个命令,所以在VS 中,没有加入此命令的应用,当然会出错了。所以解决办法是加,或者如果你不使用信号槽可以直接删除。 当要在GUI中用到信号与槽,就需在.h文件中的类里写入Q OBJECT宏。而任何含有Q Object的类都必须使用Qt的moc工具生成对应的cpp文件,然后在项目里面包含这个cpp,编译才能成功,否则会出错链接 ...

2014-07-25 10:19 0 3215 推荐指数:

查看详情

Qt源码分析之信号机制(QMetaObject是一个内部struct

Qt信号机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个函数中触发另一个类的另一个函数调用,而且还要把相关的参数传递过去.好像这和回调函数也有点关系 ...

Thu Jun 14 03:52:00 CST 2018 0 1495
无法解析的外部符号:qt_metacall metaObject(void) const qt_metacast

背景:在原有的项目上添加新的类,添加Q_OBJECT后报错。 问题原因:VS在第一次编译后,之后就不会再调用MOC命令。也就是再添加的类中有信号机制时(加Q_OBJECT),是不会调用MOC,将新的类转化为标准C++兼容形式,就会报错。 解决方法: 1.找到当前用的Qt版本,进入到 ...

Thu Jul 09 19:08:00 CST 2020 1 2022
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM