最近在写代码时发现单击一次按钮,槽函数执行了2次。
查到connect几次,就有几个连接。确定是在某个地方多cnennect了1次。
2种解决方法:
- 先disconnect(),后connect()
QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
最后一个参数,Qt::ConnectionType中有一个Qt::UniqueConnection。与其它连接方式结合使用,可保证同一个信号和槽即使多次connect也执行一次。Qt::connecttionType枚举类型
当点击按钮时,槽函数意外执行了两次。问题出在信号与槽的多次连接。解决方案包括在connect之前先disconnect,或者使用Qt::UniqueConnection确保同一信号和槽只执行一次。这涉及到Qt的信号与槽机制以及连接类型的管理。
5434

被折叠的 条评论
为什么被折叠?



