2016-09-13 24 views
0

UIコードから論理コードをmyApp.qmlとmyAppForm.ui.qmlとして分離したいとします。Qtquick qml:Qtquick UIアプリケーションでUIからロジックを分離する方法は?

ui.qmlは、マウスイベントなどのjavascriptロジックをサポートしていません。

以下の問題があるとします。

//myAppForm.ui.qml 
import QtQuick 2.4 

Item { 

Rectangle { 
    id: rectangle1 
    color: "#a0ebfb" 
    anchors.fill: parent 
     MouseArea { 
      id: mouse1 
      anchors.fill: parent 
     } 
    } 
} 

上記はUIコードです。論理コードを別にする必要があります。

//myApp.qml 
import QtQuick 2.4 

myAppForm { 
    mouse1{ 
     onClicked: { 
      rectangle1.color = 'red' 
     } 
    } 
} 

明らかに上記は機能しません。私は似たようなことをする方法を尋ねています。

ありがとうございました。

+0

PS。私はQt 5.7を使用しています – kalpa

答えて

1

エイリアスプロパティを使用してマウス領域を拡張できます。ここに変更されたコードがあります。

//myAppForm.ui.qml 
Item { 
Property alias rectMouseArea: mouse1 
Rectangle { 
    id: rectangle1 
    color: "#a0ebfb" 
    anchors.fill: parent 
     MouseArea { 
      id: mouse1 
      anchors.fill: parent 
     } 
    } 

}

//myApp.qml 
import QtQuick 2.4 

myAppForm { 
    //mouse1{ 
     rectMouseArea.onClicked: { 
      rectangle1.color = 'red' 
    } 
    //} 
} 
関連する問題