Important: Please read the Qt Code of Conduct -

Changing first day of week in DayOfWeekRow

  • I haven't found here this option. Yes I know about "locale", but i want name of days stay in local language but change just first day to Sunday.

  • Hi! If you look at the sources of DayOfWeekRow (here) , you'll see that there is no chance to get what you want. But you can build your own item in two minutes:


    import QtQuick 2.7
    import QtQml 2.2
    import QtQuick.Controls 2.1
    import QtQuick.Layouts 1.1
    ApplicationWindow {
        visible: true
        width: 640
        height: 480
        MyDayOfWeekRow {
            backgroundColor: "skyblue"


    import QtQuick 2.7
    import QtQml 2.2
    import QtQuick.Controls 2.1
    import QtQuick.Layouts 1.1
    Item {
        implicitWidth: row.implicitWidth
        implicitHeight: row.implicitHeight
        property int format: Locale.ShortFormat
        property color backgroundColor: "orange"
        property color textColor: "black"
        property real rightPadding: 6
        property real topPadding: 6
        property real leftPadding: 6
        property real bottomPadding: 6
        property real spacing: 6
        // --- private ---
        id: control
        function getStandaloneDayName(d) {
            return Qt.locale().standaloneDayName(d, control.format) // use default locale
        Component {
            id: itemDelegate
            Text {
                text: getStandaloneDayName(model.index)
                font.bold: true
                color: control.textColor
                horizontalAlignment: Text.AlignHCenter
                verticalAlignment: Text.AlignVCenter
        Rectangle {
            id: background
            anchors.fill: parent
            color: control.backgroundColor
        Row {
            id: row
            rightPadding: control.rightPadding
            topPadding: control.topPadding
            leftPadding:  control.leftPadding
            bottomPadding: control.bottomPadding
            spacing: control.spacing
            Repeater {
                model: 7 // starts with Locale.Sunday = 0
                delegate: itemDelegate

  • @Wieland solved just adding

    delegate: Text {
                text: {
                    if (globalModel.isSundayFirst)
                        Qt.locale().dayName( === 0 ? 6 : - 1, Locale.ShortFormat)
                    else {
                        Qt.locale().dayName(, Locale.ShortFormat)
                horizontalAlignment: Text.AlignHCenter
                verticalAlignment: Text.AlignVCenter

    to default DayOfWeekRow like said here . But man, thank you so much for Qt.locale() function, i was struggling for hours figuring out why Qt.dayName() doesn't want to work. Nobel Prize for you brother.

Log in to reply