【发布时间】:2018-05-17 19:36:27
【问题描述】:
我在 qml 中声明了一个组件/委托,我想将它的一个操作连接到另一个 qml 或 C++ 类中的信号。所以,组件看起来像这样:
Component
{
id: mainButtonDelegate
Button {
id: buttonOperation
text: qsTr(buttonText)
buttonEnabled: false
onIsEnableChanged:
{
buttonEnabled = cppRegisteredClass.isButtonEnabled(text)
}
}
}
我可以为组件创建连接(因此为每个按钮),就像 Qt 中表达的以下内容?
connect(loginForm, SIGNAL(loginChanged()), this, SLOT(onIsEnableChanged()))
我的模型是一个以 qml 文件表示的 ListModel。
编辑
如果这不是正确的方法,有人可以建议我另一种方法来做这样的事情吗?
【问题讨论】:
-
您可以连接一个项目实例,而不是
Component。Component只是一个原型。查看Connections 类型。更多信息可以找到here -
那么我如何将每个项目与所需的信号/插槽连接起来?在模型中?然后我必须写 onIsEnableChanged:{... 很多次
-
在您的示例中,您只需要编写一次,因为它在委托中,并且对于
mainButtonDelegate的每个实例都会像这样自动连接 - 您还想要什么?跨度> -
derM,非常感谢您的帮助,但是我已经测试了您的建议,但它不起作用。你自己做过这样的测试吗?