今天在我的一个Qt程序中新添加了一个菜单项和对应的signal和slot之后,编译运行发现出现这样的错误:
Object::connect No Such Slot.......................
但是以前定义的signal和slot都能够正常工作。而我把这个菜单项对应的signal与以前定义的slot进行连接,也能够正常运行。
那为什么新添加的slot就不可以正常工作呢?
Google搜索了一下,可能导致这种错误的原因有一下几点:
1、查看类声明中有没有Q_OBJECT
要使用slot的类的声明中必须包含Q_OBJECT
2、我声明的函数要添加声明。比如:
3、那就是要重新生成moc_XXX.cpp文件。
我想起来了,我的VS和Qt配置不知道出了什么问题,moc不能被自动调用,必须手动生成这个moc文件。
凡是存在由Q_OBJECT标示过的class的.h文件,都会由moc生成一个相应的文件。
手动生成moc_XXX.cpp文件的方法:
首先删除原来的moc_XXX.cpp文件。
右键单击要生成moc文件的.h文件,点击属性->自定义生成步骤->常规,出现如下界面:
在命令行、输出和附加依赖项里面填上相应的内容。
然后右键单击这个.h文件,点击“编译”,便可生成对应的moc文件。
然后将生成的moc文件添加到源文件中。
重新编译运行工程文件即可。
分享到:
相关推荐
Advanced Qt Programming: Creating Great Software with C++ and Qt4的英文版PDF文件,清楚,书不错。
1. 使用代码setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowSystemMenuHint); setAttribute(Qt::WA_TranslucentBackground, true); 进行窗体无边框、透明 2.点击按钮使窗体...
Qt connect的几种写法
//设置按钮的(x,y)坐标、长、宽//设置按键上显示的文字//将信号和槽连接connect(push, SIGNAL(clicked()), this, SL
报错libpng warning: iCCP: known incorrect sRGB profile的问题
Qt Creator无法打开包括文件: “corecrt.h”: No such file or directory”-附件资源
个人学习使用QT过程中遇到问题的解决方法
actionTextBold->setShortcut(Qt::CTRL + Qt::Key_B); actionTextBold->setPriority(QAction::LowPriority); QFont bold; bold.setBold(true); actionTextBold->setFont(bold); connect(actionTextBold, ...
You should be comfortable with C++ but no prior knowledge of Qt or QML is required. Table of Contents Install the Qt Framework and Qt Creator IDE Create a new solution and sub projects ready for ...
qt 出现 DirectShowPlayerService::doRender: Unresolved error code 0x80040266 ()
Qt 使用QMetaObject实现反射机制代码demo
这是一本教你如何用Qt4来编写应用程序的好书,不过是英文版的。国内目前还没有引进版权。
qt最重要的类, object类的源码分析,相当实用, 相当有参考价值
Visual Studio打开Qt项目时“there's no Qt version assigned to this project for platform win32”问题的解决方法1
Qt中的signal和slot
error C1083: 无法打开包括文件:“pthread.h”: No such file or directory cocos2d-x-2.1.5\extensions\AssetsManager\AssetsManager.h 30 1 AssetsManagerTest
QT实现动态布局 博客:QT实现动态布局 地址:https://tinycool.blog.csdn.net/article/details/124525866
主要介绍了Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题,本文给大家分享解决方案,需要的朋友可以参考下
这是QT+FFMPEG设计的流媒体播放器完整源码 1. 支持RTMP流播放 2. 支持RTSP流播放 3. 支持音频播放 4. 支持视频播放 编译器: MinGW 32位 QT版本: 5.12.6