1. 程式人生 > >QT 的 connect signal slot 注意一下這個

QT 的 connect signal slot 注意一下這個

QT中使用 QObject::connect(objs, signal, objt, slot);

當同樣的 signal和slot 多次connect時,  emit 1 次 signal 就會觸發,多次的 slot.

當這種connect 在某個函式中, 多次的呼叫這個函式,

就會出現多次connect的情況了.  導致 一次 signal 多次 slot.

這個bug 太隱蔽了, 我搞了半天, 才發現....

eg:

void  foo()

{

    connect(...sig1.....slot1..);

}

for(int i=0; i< 10; i++) 

{

    foo();

}

emit sig1; -->會觸發10次 slot1