QML日历类型,强制显示年份不起作用

时间:2018-08-12 09:51:51

标签: qt qml

这是我的代码:

UPDATE T1 SET RECORD_STATUS='U'

VMComboBox是一个自定义组合框。我需要这个来选择出生日期。但是,QML日历没有提供一种可协调的方式来快速地向后导航。我认为添加一个组合框来选择年份将是最快的方法。

但是,在我的日历元素上设置visibleYear不会更改可见的年份。它有时会更改年份,但几乎是随机的。我看不到所选年份与显示年份之间的任何关系。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,我已经测试了Calendar项目,但是无法重现您所提到的问题。 这是一个测试代码,我想它将对您有用。

import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.4
import QtQuick.Controls 1.4 as Controls1

ApplicationWindow {
    title: qsTr("Calendar")
    width: 300
    height: 400
    visible: true

    ColumnLayout {
        anchors.fill: parent
        ComboBox {
            Layout.fillWidth: true
            Layout.preferredHeight: 40
            property int year: new Date().getFullYear()
            model: {
                var arr = [];
                for(var i = year; i > (year - 50); i--)
                    arr.push(i);
                return arr;
            }
            currentIndex: year - calendar.visibleYear
            onCurrentIndexChanged: {
                calendar.visibleYear = year - currentIndex;
            }
        }
        ComboBox {
            Layout.fillWidth: true
            Layout.preferredHeight: 40
            model: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
            currentIndex: calendar.visibleMonth
            onCurrentIndexChanged: {
                calendar.visibleMonth = currentIndex;
            }
        }
        Controls1.Calendar {
            id: calendar
            Layout.fillWidth: true
            Layout.fillHeight: true
            navigationBarVisible: false
        }
    }

}

像魅力一样工作。