qt - 发射复制它的参数吗?

标签 qt

我想了解emit .它是否重复数据?

如果我必须通过它传递一个 1MB 字节数组,那么内存中将存在多少该字节数组的副本?

最佳答案

这取决于您的信号如何连接到插槽。

如果使用默认连接,Qt::DirectConnection ,和两个 QObject s 在同一个线程中,然后根据您定义参数的方式(按引用传递或按值传递),将参数视为以通常的方式调用函数。

如果您使用 Qt::QueuedConnection 连接或者你在线程之间连接,那么参数参数被复制并交给一个特殊的QEvent并添加到接收线程的事件队列中。这将在接收线程有机会时进行处理。

关于qt - 发射复制它的参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717816/

相关文章:

c++ - qt 插槽柯里化(Currying)

css - 如何在具有焦点时更改 QPushButton 图标?

c++ - 在 Linux 上使用 Qt 的限定名无效

c++ - 停止从 QGraphicsItem 到 QGraphicsScene QT 的事件传播

qt - 将项目添加到自定义组件的布局

qt - 如何根据内部内容使ListView项目高度动态化?

windows - 编译 Qt 5,收到警告 "The build will most likely fail."

c++ - 项目消息 : You are running qmake on a generated . pro 文件。这可能行不通

c++ - QTextEdit 插入和删除行非常慢。无论如何让它更快?

c++ - qt slider 问题c++