• Qt connect()方法Qt::ConnectionType


    connect()

    Qt,绑定信号和槽原型:

    static QMetaObject::Connection connect(const QObject *sender, const char *signal,
                            const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection);
    
    • 1
    • 2
    static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
                            const QObject *receiver, const QMetaMethod &method,
                            Qt::ConnectionType type = Qt::AutoConnection);
    
    • 1
    • 2
    • 3
    inline QMetaObject::Connection connect(const QObject *sender, const char *signal,
                            const char *member, Qt::ConnectionType type = Qt::AutoConnection) const;
    
    • 1
    • 2

    Qt::ConnectionType类型:

        enum ConnectionType {
            AutoConnection,
            DirectConnection,
            QueuedConnection,
            BlockingQueuedConnection,
            UniqueConnection =  0x80
        };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    作用

    在Qt中,ConnectionType是一个枚举类型,用于指定信号和槽之间的连接类型。它定义了四种类型的连接:

    1. AutoConnection:这是默认的连接类型,它由Qt::AutoConnection指定。如果发送对象和接收对象是同一个对象的子对象,或者发送对象和接收对象之间存在继承关系,那么信号和槽之间的连接将被视为AutoConnection类型。在这种情况下,信号发送后将立即调用接收端的槽函数。
    2. DirectConnection:这种连接类型表示信号发送后将立即调用接收端的槽函数。它要求发送对象和接收对象之间存在直接的连接,并且发送对象和接收对象必须是同一个线程中的对象。
    3. QueuedConnection:这种连接类型表示信号将在发送对象的消息队列中排队,然后在适当的时候由事件循环处理。它要求发送对象和接收对象必须是不同的线程中的对象。
    4. BlockingQueuedConnection:这种连接类型与QueuedConnection类似,但是它具有阻塞的特性。也就是说,在接收端处理信号之前,发送端的线程将一直被阻塞,直到信号处理完毕为止。
    5. UniqueConnection:这种连接类型是一个特殊的标记,用于指定只有一个连接可以同时存在。如果尝试创建多个连接到同一个槽函数的连接,那么只有第一个连接会被保留,其余的连接将被删除。

    通过指定不同的ConnectionType,可以在不同的场景下选择最合适的连接方式,从而实现更灵活的信号和槽连接。

  • 相关阅读:
    前端研习录(28)——JavaScript Element对象及其属性讲解及示例分析
    第6章 Kafka面试题
    acwing算法提高之图论--无向图的双连通分量
    ubuntu配置java环境jdk
    计算机毕业设计Java疫情返乡人员管理系统(源码+系统+mysql数据库+Lw文档)
    数据中心市场现状及发展趋势分析
    【Java EE初阶二十八】简单的博客系统
    常见三维建模软件有哪些?各自的特点是什么?
    计算机网络
    使用极域电子教室控制学员机开机问题
  • 原文地址:https://blog.csdn.net/MrHHHHHH/article/details/134565068