用c++创建qt的基类

在vs2022中,尽管用类向导创建类时添加了QObject作为基类,实际上仍然是普通的c++类。

这是一种错误的方法,正确的放在后面,先来看看如何解决已经创建的类编译不通过的处理方法: 

出现LNK2001 的错误,这是由于IDE没有自动为新建的类生成 moc_XXXX.cpp 文件导致的。

按照以下步骤修改。

分别打开工程对应的xxxx.vcxproj和xxxx.filters文件;

进行修改:

xxxx.vcxproj

正常的Qt 类对应的头文件
<ItemGroup>
    <QtMoc Include="xxxx1.h /">
    <QtMoc Include="xxxx2.h /">
    <QtMoc Include="xxxx3.h /">
</ItemGroup>
 
你新建有问题的类的头文件
 
<ItemGroup>
    <ClCompile Include="xxxx4.h /">
</ItemGroup>
修改后的:
<ItemGroup>
    <QtMoc Include="xxxx1.h /">
    <QtMoc Include="xxxx2.h /">
    <QtMoc Include="xxxx3.h /">
    <QtMoc Include="xxxx4.h /">
</ItemGroup>

xxxx.filters

修改后
<ItemGrop>
    <QtMoc Include="xxxx1.h">
        <Filter>Header Files</Filter>
    </QtMoc>
    <QtMoc Include="xxxx2.h">
        <Filter>Header Files</Filter>
    </QtMoc>
    <QtMoc Include="xxxx3.h">
        <Filter>Header Files</Filter>
    </QtMoc>
    <QtMoc Include="xxxx4.h">
        <Filter>Header Files</Filter>
    </QtMoc>
</ItemGrop>

至此,重新编译未报错。

事实上,应该是在以下界面创建qt的类:

添加->新建项->Qt->QtClass来新建Qt的类。

 

来源:VS + QT 出现 LNK2001 无法解析的外部符号 QMetaObject 的问题_vsqt无法解析的外部符号_逝水流年丶轻染尘的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值