• 4450阅读
  • 4回复

信号和槽可以多次断开和连接吗? [复制链接]

上一主题 下一主题
离线磐石
 
只看楼主 倒序阅读 楼主  发表于: 2010-02-27
我想问的是:我将某事件与相应的槽函数连接上后,
connect(sender, SINGAL, Receiver, SLOT);
由于要执行某些操作将其断开
disconnect(sender, 0, Receiver, 0);
这些操作执行完后,又得连接上
connect(sender, SINGAL, Receiver, SLOT);
我这样试了以后的结果是,第一次连接成功的,再断开也是行的,可再执行连接时,就连接不上了,哪位大哥帮忙解释一下,谢谢!


不怕做不到,只怕想不到
离线午小夜

只看该作者 1楼 发表于: 2010-02-27
qDebug()<<connect();
qDebug()<<disconnect();
try.
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线磐石
只看该作者 2楼 发表于: 2010-02-27
引用第1楼午小夜于2010-02-27 16:53发表的  :
qDebug()<<connect();
qDebug()<<disconnect();
try.

这样做是输出执行这几条语句时的调试信息吗,呵呵,我是新手没这么用过,我在代码中三条连接信号和槽的语句前都加了qDebug()<<
在cmd.exe中重新make后运行程序,在cmd.exe中没有看到任何输出啊(我的开发环境是mingw+qt,在cmd.exe中进行编译的)
不怕做不到,只怕想不到
离线午小夜

只看该作者 3楼 发表于: 2010-02-27
無語。。。Windows下用什麽cmd。。。有creator給你都不用。。。

用connect()?QMessageBox::about(0,"","true"):QMessageBox::about(0,"","false");
縂可以吧。。。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线磐石
只看该作者 4楼 发表于: 2010-02-27
引用第3楼午小夜于2010-02-27 17:32发表的  :
無語。。。Windows下用什麽cmd。。。有creator給你都不用。。。
用connect()?QMessageBox::about(0,"","true"):QMessageBox::about(0,"","false");
縂可以吧。。。

呵呵,恩,三条语句执行后都是返回true的,说明信号和槽多次断开和连接是可以的,谢谢帮忙啊,我知道问题出哪了。
不怕做不到,只怕想不到
快速回复
限100 字节
 
上一个 下一个