Object::connect: No such slot (QT槽丢失问题)
2024-08-31 03:16:54
1、看看你的类声明中有没有Q_OBJECT,并继承public QMainWindow{
例如:
class CPlot: public QMainWindow{
Q_OBJECT
2、你声明的函数要加声明:
private slots:
void xxxx();
并且要把上面一段函数添加到构造函数的下面,被构造函数直接访问:
public:
CPlot(QWidget *parent = 0);
private slots:
void openFile();
void segmentObj();
void capture();
void drawRays();
3、检查槽函数名拼写是否有误,以及对应的signal和slot的参数是否一致
如果还不行的话,清理项目,删掉原有的moc_xxx.cpp,重新执行qmake.
或者自己修改一下:
例如:添加槽:
static const char qt_meta_stringdata_OpenGLViewer[] = {
"MainViewer\0\0openFile()\0segmentObj()\0"
"capture()\0"
};
void CPlot::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
Q_ASSERT(staticMetaObject.cast(_o));
CPlot *_t = static_cast<CPlot *>(_o);
switch (_id) {
case 0: _t->openFile(); break;
case 1: _t->segmentObj(); break;
case 2: _t->capture(); break;
default: ;
}
}
Q_UNUSED(_a);
}
最新文章
- The method setPositiveButton(int, DialogInterface.OnClickListener) in the type AlertDialog.Builder is not applicable for the arguments
- PSP第九周
- ebs双节点webservice部署问题
- JS引用类型之——RegExp
- iOS获取电量方法
- C++ this指针详解
- mongodb 操作类
- 嵌入式 Linux线程同步读写锁rwlock示例
- 去掉display:inline-block元素间的多余空白
- Android studio插件安装
- c++ 07
- java面试题大全-基础方面
- Swift - 实现拨打电话
- (译)Windsor入门教程---第五部分 添加日志功能
- 3.从AbstractQueuedSynchronizer(AQS)说起(2)——共享模式的锁获取与释放
- [js高手之路] html5 canvas系列教程 - 状态详解(save与restore)
- linux常用基本命令整理小结
- 有奖试读—Windows PowerShell实战指南(第2版)
- sql server 高可用故障转移(3)
- JavaScript的工作原理:解析、抽象语法树(AST)+ 提升编译速度5个技巧
热门文章
- 对SHH的公钥和私钥的简单理解
- JavaScript中的call()和apply()方法,借此实现继承
- 解决maven打包编译出现File encoding has not been set问题
- Spring Boot使用thymeleaf模板时报异常:template might not exist or might not be accessible by any of the configured Template Resolvers
- 设计模式实例(Lua)笔记之五(Bridge模式)
- Extjs学习笔记——Ext.data.JsonStore使用说明
- Oracle 堵塞(blocking blocked)
- SIPp web frontend(2)
- oc65--协议应用1,接口.做数据类型限定
- ConfigSections配置