2012-05-22 4 views
0

У меня есть проблема в связывании элемента в QML, например:QML проблема связывания вещи

Rectangle{ 
    id: thetarget 
    width:100 
    height:100 
} 
Item{ 
    id: container 
    MouseArea{    
     id:mousearea 
     drag.target: thetarget //not work   
     anchors.fill: thetarget //not work 
     property int foo: thetarget.width //work 
    } 
} 

То, что я хочу сделать привязки drag.target, anchors.fill работы без изменения структуры (mousearea является а не брата или ребенка из этой цели). Я использовал функцию Binding, чтобы вернуть значение, но они бесполезны. Может ли кто-нибудь сказать мне, что случилось?

+0

Я думаю, вы должны положить MouseArea под элемент thetarget, почему вы хотите поместить его под контейнер и привязать его к цели? – Kunal

+0

Я хочу сделать независимый компонент и передать элемент (например, thetarget) в его API. Этот компонент может быть Item, Loader или Rectangle ..., который содержит MouseArea, который можно использовать для перетаскивания переданного элемента. –

ответ

3

Установите родительский элемент mousearea на номер thetarget.

import QtQuick 1.1 

Item { 
    Rectangle { 
     id: thetarget 
     width: 100 
     height: 100 
    } 
    Item { 
     id: container 
     MouseArea { 
      id: mousearea 
      parent: thetarget 
      drag.target: thetarget 
      anchors.fill: thetarget 
      property int foo: thetarget.width 
     } 
    } 
} 
+0

Это действительно то, что мне нужно. Спасибо! –

Смежные вопросы