函数原型:
[static] QMetaObject::Connection QObject::Connection(const QObject* sender,
const char* signal,
const QObject* receiver,
const char* method,
Qt::Connection type = Qt::AutoConnection
)
信号和槽关联类型表
Qt::AutoConnection
自动关联,默认值。如果receiver存在于发射信号的线程,则使用Qt::DirectConnection;否则,使用Qt::QueuedConnection。在信号被发射时决定使用哪种类型。
Qt::DirectConnection
直接关联。发射完信号后立即调用槽,只有槽执行完成返回后,发射信号处后面的代码才可以执行。
Qt::QueuedConnection
队列关联。当控制返回receiver所在线程的事件循环后再执行槽,无论槽执行与否,发射信号后面的代码都会立即执行。
Qt::BlockingQueuedConnection
阻塞队列关联。类似Qt::QueuedConnection,不过,信号线程会一直阻塞,直到槽返回。当receiver存在于信号线程时不能使用该类型,不然程序会死锁。
Qt::UniqueConnection
[static] QMetaObject::Connection QObject::Connection(const QObject* sender,
const char* signal,
const QObject* receiver,
const char* method,
Qt::Connection type = Qt::AutoConnection
)
信号和槽关联类型表
Qt::AutoConnection
自动关联,默认值。如果receiver存在于发射信号的线程,则使用Qt::DirectConnection;否则,使用Qt::QueuedConnection。在信号被发射时决定使用哪种类型。
Qt::DirectConnection
直接关联。发射完信号后立即调用槽,只有槽执行完成返回后,发射信号处后面的代码才可以执行。
Qt::QueuedConnection
队列关联。当控制返回receiver所在线程的事件循环后再执行槽,无论槽执行与否,发射信号后面的代码都会立即执行。
Qt::BlockingQueuedConnection
阻塞队列关联。类似Qt::QueuedConnection,不过,信号线程会一直阻塞,直到槽返回。当receiver存在于信号线程时不能使用该类型,不然程序会死锁。
Qt::UniqueConnection
唯一关联。这是一个标志,可以结合其他几种连接类型,使用按位或操作。这时两个对象间的相同的信号和槽只能有唯一的关联。使用这个标志主要为了防止重复关联。