您的位置:首页 > 编程语言 > C语言/C++

QML 与 C++(Qt)通过信号和槽进行交互

2014-05-08 12:01 633 查看
清楚Qt的都清楚信号的槽,它无比的强大,怎么强大呢这里就不解释了。
信号与槽机制介绍




当然都是Qt的东西,QML也可以用信号和槽,现在介绍一下他们通过信号和操怎么互传数据




继承QDeclarativeView




QObject *rootObject = reinterpret_cast

 (this->rootObject());



得到rootObject,返回的是一个QGraphicsObject的值,这里的把他强制转换成QObject才能使用信号和槽。



接收QML信号

QML内容




import QtQuick 2.0

Rectangle {
    id:roots
    width: 100
    height: 62
    color:"#cccccc"
    signal singalText1(string valueStr);
    Text{
        id:text1
        text:"hello word 2"
    }
    MouseArea{
        onClicked:roots.singalText1(text1.text);
    }
}








接收Qml的信号



connect(rootObject, SIGNAL(singalText1(QString )),this,SLOT(slotsQML(QString )));



向QML传值

QML内容





import QtQuick 2.0

Rectangle {
    id:roots
    width: 100
    height: 62
    color:"#cccccc"
    signal singalText1(string valueStr);
    function slotsStr(value){
        text1.text = value
    }

    Text{
        id:text1
        text:"hello word 2"
    }
    MouseArea{
        onClicked:roots.singalText1(text1.text);
    }
}





Qt



void setText(QString value){
    emit singalSetText(value)
}
connect(this,SIGNAL(singalSetText(QVariant)),rootObject,SLOT(boatMark(QVariant)));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: