2 pingshanjushi PingShanJuShi 于 2015.06.15 16:59 提问

qt中用信号和槽导致程序挂掉

工具是qt creator,qt库版本为5.4,环境是windows 7,在我的程序中有一个信号的参数是(QSring,double,double,double,double),然后和在同一个类中的私有成员类的信号connect,最后这个私有成员类将此信号和这个私有成员类的私有成员类的槽函数connect,结果运行起来会让程序无缘无故挂掉。调试也发现不了原因,我在猜想是不是因为QString的原因,求有经验的大神赐教

5个回答

lx624909677
lx624909677   Ds   Rxr 2015.06.15 17:06

给程序的每一步都加个log看看是哪儿的问题,信号和槽只是一种绑定的关系,不会因此造成程序崩溃的,造成程序崩溃可能是槽函数里的某行代码处了问题

lx624909677
lx624909677 回复PingShanJuShi: ....
2 年多之前 回复
PingShanJuShi
PingShanJuShi 哈,我已经解决了,我把信号和槽的参数换成了模板并typedef注册后使用就没问题了。不过谢谢你的热心
2 年多之前 回复
lx624909677
lx624909677 回复PingShanJuShi: 有时候会输出是说该输出的时候,但有时候会不输出吗?那就说明你的代码设计有问题啊
2 年多之前 回复
PingShanJuShi
PingShanJuShi 我在每个槽函数开始都加了debug输出语句,有时候会输出,但是基本大部分时候是不会输出的,而且槽函数还没加处理函数
2 年多之前 回复
PingShanJuShi
PingShanJuShi   2015.06.15 17:12

我在每个槽函数开始都加了debug输出语句,有时候会输出,但是基本大部分时候是不会输出的,而且槽函数还没加处理函数

PingShanJuShi
PingShanJuShi   2015.06.15 17:24

还有很重要的一点,最初的信号是在线程中发送的,connect的信号是主线程里的

zhangjiedebianhua
zhangjiedebianhua   2015.06.15 20:25

qq123456789

gamefinity
gamefinity   Rxr 2015.06.15 21:11

把代码贴出来看。你这样说,怎么诊断问题呢?QT中信号和槽本身肯定是不会有问题的,多数是使用上的问题

PingShanJuShi
PingShanJuShi 确实是,下次一定上代码,不过问题已经解决了,谢谢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片