一、格式
1.信号定义:
signal <信号名称>([<参数1>,[<参数2>]...])
2.信号触发同普通函数调用
3.信号侦听(槽):on + 首字母大写的信号名称
二、例子
1、自定义了信号的文件 ClickableSquare.qml
import QtQuick 2.0 Rectangle { id:root width: 200 height: 200 color: "#7a7556" signal myClicked() MouseArea{ anchors.fill: parent onClicked:{ root.myClicked(); } } }
2、在main.qml中侦听信号
import QtQuick 2.8 import QtQuick.Window 2.2 import QtQuick.Controls 2.1 Window { id:uiRoot visible: true width: 640 height: 480 title: qsTr("Hello World") ClickableSquare{ id:uiSquare onMyClicked: { console.log("signal succ"); } } function handleSignal(){ console.log("signal succ 2"); } Component.onCompleted: { uiSquare.myClicked.connect(uiRoot.handleSignal); } }
3、注意事项:ClickableSqure.qml 中定义的信号名为: myClicked,调用的信号名也为 myClicked,但是在 main.qml 中侦听信号时,信号名用的是 onMyClicked 。