2012-04-18 12 views
5

पकड़े मुझे पता है कि कैसे प्रेस द्वारा खिड़की ले जाना चाहते हैं और क्यूटी/QML में MouseArea पकड़े पर खिड़की पर ले जाएं।Qml MouseArea

उत्तर

7

आप के साथ QML को देखने विजेट का पर्दाफाश कर सकते हैं:

QmlApplicationViewer viewer; 
QDeclarativeContext *context = viewer.rootContext(); 
context->setContextProperty("viewerWidget", &viewer); 

फिर अपने pos संपत्ति को संशोधित खिड़की स्थानांतरित करने के लिए:

MouseArea {   
    anchors.fill: parent 
    property variant previousPosition   
    onPressed: { 
     previousPosition = Qt.point(mouseX, mouseY) 
    } 
    onPositionChanged: { 
     if (pressedButtons == Qt.LeftButton) { 
      var dx = mouseX - previousPosition.x 
      var dy = mouseY - previousPosition.y 
      viewerWidget.pos = Qt.point(viewerWidget.pos.x + dx, 
             viewerWidget.pos.y + dy) 
     } 
    } 
}  
+0

आप 'संपत्ति संस्करण previousPosition'' संपत्ति की तरह कुछ करने के लिए बदल सकते हैं बिंदु clickPos: Qt.point (1, 1) '। – troyane

संबंधित मुद्दे