最近在写代码时发现单击一次按钮,槽函数执行了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枚举类型