zoukankan      html  css  js  c++  java
  • Qt ---------- connect连接类型

    Qt::AutoConnection

    0

    (Default) If the receiver lives in the thread that emits the signal, Qt::DirectConnection is used. Otherwise, Qt::QueuedConnection is used. The connection type is determined when the signal is emitted.

    Qt::DirectConnection

    1

    The slot is invoked immediately when the signal is emitted. The slot is executed in the signalling thread.

    Qt::QueuedConnection

    2

    The slot is invoked when control returns to the event loop of the receiver's thread. The slot is executed in the receiver's thread.

    Qt::BlockingQueuedConnection

    3

    Same as Qt::QueuedConnection, except that the signalling thread blocks until the slot returns. This connection must not be used if the receiver lives in the signalling thread, or else the application will deadlock.

    Qt::UniqueConnection

    0x80

    This is a flag that can be combined with any one of the above connection types, using a bitwise OR. When Qt::UniqueConnection is set, QObject::connect() will fail if the connection already exists (i.e. if the same signal is already connected to the same slot for the same pair of objects). This flag was introduced in Qt 4.6.

    直接连接的大概意思是:信号一旦发射,槽立即执行,并且槽是在信号发射的线程中执行的。

    队列连接的大概意思是:信号发射后,当事件循环返回到接收线程时槽函数就执行了,也就是说这种连接方式不是立即触发槽函数的,而是要排队等的,并且是在槽函数的线程中执行。


    自动连接的大概意思是:信号发射对象如果和槽的执行对象在同一个线程,那么将是直连方式,否则就是队列方式。

    阻塞队列方式:在槽函数返回之前信号发射所在的线程都是阻塞的。

    Call qRegisterMetaType() to register the data type before you establish the connection。

    另外信号槽的参数必须是注册的MetaType,所以当你使用自定义的类型或者 没有注册的类型,都要在connect连接语句前调用qRegisterMetaType()进行注册,因为Qt需要保存你的参数。

  • 相关阅读:
    MVC实现类似QQ的网页聊天功能-ajax(下)
    SQLServer中跨库复制数据
    MVC实现类似QQ的网页聊天功能-Ajax(上)
    好看的Select下拉框是如何制造的
    Vss服务端用户存在,但客户端登陆不进去
    Jquery-uploadify多文件上传插件使用介绍
    jQuery mouseover,mouseout事件多次执行的问题处理
    解决svn状态图标不显示的办法
    ASP.NET获取用户端的真实IP
    js中时间戳与日期转换-js日期操作
  • 原文地址:https://www.cnblogs.com/god-of-death/p/7484839.html
Copyright © 2011-2022 走看看