QML笔记-对QML中信号与槽的基本认识

版权声明:本文为博主原创文章,遵循 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

相关文章
相关标签/搜索