美文网首页
21--Qt Quick 事件处理--Connections

21--Qt Quick 事件处理--Connections

作者: lvyweb | 来源:发表于2019-06-04 10:23 被阅读0次

    标签(空格分隔): Qt


    一个Connections对象创建一个到QML信号的连接。
    Connections有一个属性名为target,它指向发出信号的对象。
    语法:

    Connections {
        target: area;
        on<Singal>: function or code block;
    }
    

    我们来看一个实例: 界面上放两个文本,一个按钮,每点按钮一次,两个文本对象都变色,而它们的颜色是随机的。

    import QtQuick 2.0
    import QtQuick.Controls 2.2
    
    Rectangle {
        width: 320;
        height: 240;
        color: "#d5d5d5";
    
        Text {
            id:text1;
            anchors.horizontalCenter: parent.horizontalCenter;
            anchors.top:parent.top;
            anchors.topMargin: 20;
            text:"Text One";
            color: "blue";
            font.pixelSize: 28;
        }
    
        Text {
            id: text2;
            anchors.horizontalCenter: parent.horizontalCenter;
            anchors.top:text1.bottom;
            anchors.topMargin: 8;
            text:"Text Two";
            color: "blue";
            font.pixelSize: 28;
        }
        Button {
            id:changeButton;
            anchors.top:text2.bottom;
            anchors.topMargin: 8;
            anchors.horizontalCenter: parent.horizontalCenter;
            text:"Change";
    
        }
        Connections {
            target: changeButton;
            onClicked: {
                text1.color = Qt.rgba(Math.random(),Math.random(),Math.random(),1);
                text2.color = Qt.rgba(Math.random(),Math.random(),Math.random(),1);
            }
        }
    
    }
    

    Connections对象中指定target为changeButton,然后定义了onClicked信号处理器,在信号处理器中使用Qt.rbg()和Math.random()构造一个随机的颜色值来改变两个文本的颜色。

    相关文章

      网友评论

          本文标题:21--Qt Quick 事件处理--Connections

          本文链接:https://www.haomeiwen.com/subject/ufqlxctx.html