|
谢谢yafeilinux的帮助,我没有尝试这种方法,原来使用的是QTabelWidget其中的一个itemChanged信号,自己绑定这个信号到自己的Slot上,当修改了单元格中的值之后会调用itemChanged信号,然后我在自定义的SLOT中处理,利用了item.setText()方法将原来获取的值加上"m/s"重新set进单元格.这样一直不能成功,导致程序崩溃.后来发现了原因,是因为setText方法内部会触发itemChanged信号,然后就无限递归了,直至程序崩溃.然后我在自定义的SLOT中判断item->text()获取的值是不是以"m/s"结尾,如果是直接返回,如果不是再添加"m/s",这样就不会出现循环递归了.通过这个方法解决了问题.
我不知道这个方法是不是好方法,但是总觉得itemChanged信号应该就是监听改变的,就尝试解决了,监听键盘Enter键绝对可以,但是我还没有尝试,因为监听键盘之后,利用setText()方法设置到单元格直接就会成功,不会出现任何递归啊之类的.
说了这么多,还是谢谢了,也当分享自己遇到的问题和解决方法了. |
|