• 5961阅读
  • 3回复

connect错误的信号和槽-编译无错误提示 [复制链接]

上一主题 下一主题
离线ycii
 

只看楼主 倒序阅读 楼主  发表于: 2007-12-27
connect错误的信号和槽-编译无错误提示
— 本帖被 XChinux 执行加亮操作(2008-07-17) —
新手请教,写程序的时候写错一个字母,connect中有一个不存在的信号或槽,
编译qmake -project, qmake , make
也能通过,连个warning都没有..请问如何避免??
离线penguinfish

只看该作者 1楼 发表于: 2007-12-28
这是QT的bug。
如果想方便查找的话,可以根据cnnect的返回值判断。
离线xjcook

只看该作者 2楼 发表于: 2007-12-29
从本质上,你连接的时候是用宏把里面的信号和槽转成字符串了,编译器不可能给你报错的,因为一个字符串不管你写成什么样子都是符合编译条件的。啥时候见过编译器说过你字符串写错的。
只能在运行时通过返回值判断是否连接成功,不过一般来说很少写错的,注意下就是了。
离线foxyz

只看该作者 3楼 发表于: 2007-12-30
如果你看过moc出来的*。cpp文件就能发现,如楼上所说,这些宏翻译成一种字符串了。另外得提醒你
如果你的SIGNAL是有参数的,在定义和连接的地方都不能带参数,只能含有参数类型指示。比如:
connect(this->button, SIGNAL(selected(const QItemIndex&)),this, SLOT(onSelected(const QItemIndex&)));
是正确的,而
connect(this->button, SIGNAL(selected(const QItemIndex& index)),this, SLOT(onSelected(const QItemIndex& index)));
是错误的。
快速回复
限100 字节
 
上一个 下一个