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

2019-06-04  本文已影响0人  lvyweb

标签(空格分隔): 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()构造一个随机的颜色值来改变两个文本的颜色。

上一篇下一篇

猜你喜欢

热点阅读