gpt4 book ai didi

c++ - Qt 和 LibEvent 中信号和槽的区别

转载 作者:行者123 更新时间:2023-12-01 14:07:43 28 4
gpt4 key购买 nike

也许这对某人来说是一个很奇怪的问题,但是 Qt 和 LibEvent 中的信号和插槽系统之间有什么区别?图书馆?因为似乎它们都用于类似的东西。

如果 Qt 中已经有信号和插槽,为什么我需要使用 LibEvent?用什么来管理大量网络连接更好?如何管理?例如。我需要通过 TCP 服务器在 SSL 中使用 LibEvent 或信号和插槽。

最佳答案

Qt 信号/插槽和 libevent 都依赖于回调,但它们在机制和用例上有很大不同。
Qt slot 是普通函数。虽然 Qt siganl 基本上是回调的容器,你可以想象它喜欢 std::list<CALLBACK_FUNC> .
当您“发出”一个信号时,您实际上是直接从“发出”调用每个槽函数。
Qt 信号/槽基于 c/c++ 函数指针和运行时类型信息(由 mocQ_OBJECT 魔术生成),
并可用于连接任何 C++ 类实例。
Libevent 回调是从事件循环中调用的,通常您不想直接调用它们。
并且 libevent 回调用于预定义的“事件”,您不能将它们用于通用目的。
如果你打算用网络通信来实现 Qt 应用,我建议你可以使用 Qt sockects,它与 Qt 事件循环很好地集成。

关于c++ - Qt 和 LibEvent 中信号和槽的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47504147/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com