网上资料很多关于信号槽多次触发问题的解决办法,一是在连接方法中加qt::uniqueconnection,一是在使用及时断开连接。我遇到一种情况,是在子窗口中点击按钮创建连接,每次重新打开子窗口,都会导致信号槽多触发一次,即当第三次打开窗口,信号槽每次都会触发三次。
之所以会出现这种情况,是因为写代码的时候把创建新出口类写在的点击按钮方法里面,每次点击按钮都会new一个新的窗口类,并且再次执行connect方法。
在new之前判断是否已经存在这个类,不存在则new,并建立连接。
代码中的canshu在头文件中定义,并赋值nullptr
这样就不会出现多次触发槽函数的问题了。