版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接和本声明。
本文连接:https://blog.csdn.net/qq78442761/article/details/90753986
目录函数
基本概念ui
演示及实例.net
基本概念
首先是信号的声明,以下:blog
Rectangle{
id: rectangleId
signal greet(string message)
...
}
当声明一个信号后会自动生成一个on<SignalName>这个槽函数(这种是JavaScript代码)ip
使用下面的方式也能够关联信号与槽,槽函数以下!rem
function myGreeting(mMessage){
console.log("myGreeting function called. The parameter is : " + mMessage)
...
}
关联以下:源码
Component.onCompleted:{
rectangleId.greet.connect(rectangleId.myGreeting)
}
string
演示及实例
运行截图以下:it
程序结构以下:io
源码以下:
main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
property int increment: 50
Rectangle {
id: rectangleId
width: 200 + increment
height: 300
color: "red"
signal greet(string message)
function myGreeting(mMessage){
console.log("myGreeting slot called. The parameter is : " + mMessage)
increment += 50
}
MouseArea{
anchors.fill: parent
onClicked: {
rectangleId.greet("Hello there")
}
}
Component.onCompleted: {
greet.connect(rectangleId.myGreeting)
}
}
}
另一种方法:
import QtQuick 2.9 import QtQuick.Window 2.2 Window { visible: true width: 640 height: 480 title: qsTr("Hello World") property int increment: 50 Rectangle { id: rectangleId width: 200 + increment height: 300 color: "red" signal greet(string message) onGreet: { console.log("onGreet: greet signal emited, parameter is : " + increment) increment += 50 } MouseArea{ anchors.fill: parent onClicked: { rectangleId.greet("Hello there") } } } } ———————————————— 版权声明:本文为CSDN博主「IT1995」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。 原文连接:https://blog.csdn.net/qq78442761/article/details/90753986