Programming/qt

qt signal / slot, connect() Qt::AutoConnection

구차니 2026. 6. 30. 12:40

connect() 함수를 사용하면 대개 인자를 4개만 넣고 쓰는데

함수 프로토타입을 보니 가장 마지막 인자가 기본값으로 지정되어 있다.

// qobject.h
    static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
                                     const typename QtPrivate::FunctionPointer<Func2>::Object *receiver, Func2 slot,
                                     Qt::ConnectionType type = Qt::AutoConnection)

 

기본은 Qt:AutoConnection 이라는데 약간의 손실 가능성이 존재하고

반드시 손실되서는 안되는 경우라면 QueuedConnection으로 하는것을 추천한다고 한다.

// qnamespace.h
    enum ConnectionType {
        AutoConnection,
        DirectConnection,
        QueuedConnection,
        BlockingQueuedConnection,
        UniqueConnection =  0x80
    };

 

DirectConnection은 다른 스레드에서 쓰면 동기화 문제 발생할수 있다는걸 보면 동일 쓰레드 내에서 써야 할듯.

[링크 : https://still.tistory.com/86]

 

 

[링크 : https://doc.qt.io/qt-6/qt.html]