QT QML 在qml中自定义信号

服从真理,就能征服一切事物。 —— 塞涅卡

实例:

自定义文件 MoveYou.qml:

import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.2
import QtQuick.Window 2.2

Rectangle{
    id:root
    //anchors.fill: parent
    property alias  pointName: name.text
    signal moveButttonclicked()  //对应的信号处理器为:onMoveButttonclicked:{},注意M要大写!!即使原定义时为小写
	
	Button {
        id: move_butn
        x: 100
        y: 100
        width: 200
        height: 45
        text: "Move"
        onClicked: moveButttonclicked(int x, int y)//点击该按钮,会发出signal moveButttonclicked(int x, int y),好像不能float型
    }
	
}

在另一个qml文件中,将MoveYou.qml当做一个组件进行调用

import QtQuick 2.0
import QtQuick 2.4
import QtQuick.Layouts 1.2
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
Item{
    id:root
    width: 700
    height:800
    Rectangle{
		MoveYou{
			id:move
			
			onMoveButttonclicked:{
                             console.log("move la"+" "+y)
                        }
			
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/qq_35865125/article/details/80239091
QML