Ich benutze Qt 5.2 Beta, Qt Quick 2.1.Korrekter Weg zum Implementieren von Zoom/Skalierung in Qt Quick (QML) Flickbar
Ich habe geradeaus Problem mit Flickable
Komponente.
ist hier minimal Arbeitscodebeispiel:
import QtQuick 2.1
import QtQuick.Controls 1.0
ApplicationWindow {
width: 300
height: 200
Rectangle {
anchors.fill: parent
color: "green"
Flickable {
id: flickArea
anchors {fill: parent; margins: 10; }
contentWidth: rect.width;
contentHeight: rect.height
Rectangle {
id: rect
x: 0; y: 0;
width: 200; height: 300;
color: "lightgrey"
Rectangle {
anchors { fill: parent; margins: 10; }
color: "red"
}
}
}
}
Button {
anchors.bottom: parent.bottom;
anchors.horizontalCenter: parent.horizontalCenter;
text: "Scale flickArea"
onClicked: { flickArea.scale += 0.2; }
}
}
Wenn ich Skalierung mache, erwarte ich, dass alle untergeordneten Elemente sichtbar bleiben wird, wie es vor und Innenbereich war größer zu werden.
Stattdessen werden die untergeordneten Elemente aus dem Inhalt "Flickable" entfernt.
Kann jemand einen normalen Weg vorschlagen, um dieses Problem zu vermeiden, ohne dass alle Offsets manuell neu berechnet werden müssen?
Danke.
Ich bin auf einem Telefon, so ist dies nur eine Erinnerung an zhis später zu beantworten. Ich denke, ein besserer Weg wäre, den QML-Typ "Skalieren" zu verwenden und den entsprechenden Ursprungspunkt festzulegen. –