版權聲明:本文爲博主原創文章,遵循 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