【问题标题】:QML connect() passing extra argumentsQML connect() 传递额外参数
【发布时间】:2018-01-15 19:54:06
【问题描述】:

我想将signal_A(C)itemA 连接到function_B(currentIndex,C)itemB

如何连接它们?当它的signal_A(C) -> function_B(C) 它将是: itemA.signal_A.connect(itemB.function_B);

但是当插槽上有额外的参数时,我不确定如何链接它们。像这样的东西: item_A.signal_A.connect(item_B.function_B(currentIndex, C));

【问题讨论】:

  • 顺便说一下,我在 Component.onCompleted 进行连接,我更愿意避免使用 Connections 方法。
  • 有什么原因,为什么你避免使用声明性Connections?您能否显示更多代码,以将您的连接置于上下文中?更像是MCVE

标签: qml connection qt-signals


【解决方案1】:

您可以在可以访问currentIndex 的地方创建包装函数

function wrapFunctionB(C) {
    return function_B(currentIndex, C)
}

然后连接到这个函数:

item_A.signal_A.connect(where.ever.wrapFunctionB)

如果你连接的地方可以访问所有参数,你也可以将它连接到一个匿名函数:

item_A.signal_A.connect(function(C) { function_B(from.where.ever.currentItem, C) })

【讨论】:

    猜你喜欢
    • 2017-12-18
    • 2020-05-02
    • 2012-06-01
    • 2017-06-01
    相关资源
    最近更新 更多