Как нарисовать элемент поверх следующих элементов в макетах QML - PullRequest
0 голосов
/ 22 сентября 2018

Я работаю над элементом DatePicker для QtQuick.Controls 2.0 У меня проблема с отображением всплывающего календаря над другими элементами страницы.Кто-нибудь мне помочь в этом?

Снимок экрана компонента

Исходный код моего DatePicker:

import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Controls 1.4 as OldControls

Rectangle {
    id: root
    width: childrenRect.width
    height: childrenRect.height
    clip: true

    property bool expanded: false
    property bool enabled: true

    property alias selectedDate: cal.selectedDate

    MouseArea {
        height: expanded ? txt.height + cal.height : txt.height
        width: expanded ? Math.max(txt.width, cal.width) : txt.width
        hoverEnabled: true
        enabled: root.enabled
        onHoveredChanged: {
            expanded =  root.enabled && containsMouse
        }

        TextField {
            id: txt
            enabled: root.enabled
            text: cal.selectedDate
            inputMask: "0000-00-00"
        }

        OldControls.Calendar {
            id: cal
            anchors.top: txt.bottom
            anchors.left: txt.left
            visible: expanded
        }
    }
}

и вот мой DatePicker использование на странице:

import QtQuick 2.0
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.2
import "./Components"

Item {
    anchors.fill: parent

    GridLayout {

        columns: 2
        Text { text: qsTr("Date Filter: ") }
        DatePicker {}

        Text { text: qsTr("name filter: ") }
        TextField {}
    }
}
...