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.

    1. 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
                }
            }
        }
    }
    

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.