Ausrichtung Itemgröße / Visibility
-
Hallo,
mir ist gerade beim Versuch einige Elemente auszurichten eine Frage begegnet wo ich hoffe das jemand hier einen Tipp für mich hat.
Ich habe eine QML Oberfläche in der ich oben eine Checkbox habe, darunter zwei Elemente (eine Liste mit Elementen, daneben ein SwipeView) und im Footer die TabBar.
Jetzt habe ich zur Ausrichtung die Checkbox und den SwipeView jeweils in ein Rectangle gepackt und alles sieht soweit gut aus und funktioniert auch fast so wie es soll. Nur habe ich zwei Effekte die ich nicht verstehe.
- der SwipeView schiebt, auch wenn er in einem Rectangle ist, sich über das links davon liegende Element mit der Liste so das ab der zweiten "Swipe-Seite" die Liste nicht mehr zu sehen ist
2) wenn ich per Checkbox die Liste ausblenden lassen (visible = false) wird das entsprechende Gebiet der Liste einfach nur weiß. Ich wollte aber eigentlich umsetzen das das SwipeView in dem Moment die ganze Appbreite nutzt (normal würde ich eigentlich Row dafür nutzen, was aber nicht funktioniert da ich die dynamische Höhe benötige.-> geklärt, mit der if-Abfrage bei anchors.left im "swipeContainer" funktioniert die Breite jetzt
neues 2) Dabei hat sich aber ein neuer Effekt ergeben. Bei jedem Swipe wird die "movieClientsList" vom Swipe verdeckt, ich muss die dann aus und wieder anmachen um sie neu auftauchen zu lassen. Hat jemand vielleicht einen Tipp für mich wie ich die dauerhaft darstellen kann? Also das der SwipeView wirklich nur innerhalb seines Containers "swipeContainer" arbeitet und nicht das Element zu seiner linken überschreibt.
Hier der Code:
import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 import QtQuick.Controls 2.2 QtObject { property real defaultSpacing: 10 property SystemPalette palette: SystemPalette { } property var mainWindow: ApplicationWindow { id: root visible: false width: Screen.width height: Screen.height title: qsTr("Client-Manager") Rectangle { id: checkBoxContainer width: root.width height: 40 CheckBox { id: showMovieClients text: "MovieClients anzeigen" checkState: Qt.Checked onClicked: { movieClientList.visible = !movieClientList.visible } } } Clients { id: movieClientList visible: true anchors.top: swipeContainer.top anchors.bottom: tabBar.top } Rectangle { id: swipeContainer anchors.top: checkBoxContainer.bottom anchors.bottom: tabBar.top anchors.right: checkBoxContainer.right anchors.left: { if(movieClientList.visible) { movieClientList.right } else { checkBoxContainer.left } } SwipeView { id: swipeView anchors.fill: swipeContainer currentIndex: tabBar.currentIndex Project { /// Swipe 1 } Project { /// Swipe 2 } Project { // Swipe 3 } } } footer: TabBar { id: tabBar currentIndex: swipeView.currentIndex TabButton { text: qsTr("Startseite") } TabButton { text: qsTr("Seite 2") } TabButton { text: qsTr("Seite 3") } } property var splashWindow: LoadingScreen { onTimeout: { root.visible = true // clientsWindow.visible = true } } } }