Михаиллл
Михаиллл14 серпня 2019 р. 09:11

Как в QML обновить календарь?

Добрый день.
Так сделал календарь.
После нажатия на число в календаре, меняется в коде расцветка, в которую должны быть окрашенны делегаты календаря. Но видимая расцветка не меняется, календарь не обновляется. Такое обновление не срабатывает:

                    mothGrid1.update()
                    model.update()

Скажите пожалуйста, как обновить календарь?

    MonthGrid {
        id: mothGrid1
        month: 7//Calendar.December
        year: 2019
        x: 23
        y: 154
        width: 340
        height: 355
        //locale: Qt.locale("en_US")

        delegate: Item {
            Rectangle{
                id: rectangleDelegat
                anchors.fill: parent
                //color: AppCore.getVectorDate().includes(model.day + "." + (model.month +1 ) + "." + model.year ) || AppCore.getVectorDate().includes(model.day + "." + 0+(model.month +1 ) + "." + model.year ) ?  "gainsboro" : "white"
                //color: model.date >= Date.fromLocaleString(Qt.locale(), AppCore.getDateOypr1(), "dd.MM.yyyy") && model.date <= Date.fromLocaleString(Qt.locale(), AppCore.getDateOypr2(), "dd.MM.yyyy") ? model.date ===  Date.fromLocaleString(Qt.locale(), AppCore.getDateOypr1(), "dd.MM.yyyy") /*||  model.date == Date.fromLocaleString(Qt.locale(), AppCore.getDateOypr2(), "dd.MM.yyyy")*/ ? "blue" : "gainsboro" : "white"
                border.color: "black"
                border.width: 1
                color: AppCore.getColorRectangleCalendar(Qt.formatDate(model.date,"dd.MM.yyyy"))
            }
            Text {
                id: textDelegat
                //color: AppCore.getVectorDate().includes(model.day + "." + (model.month +1 ) + "." + model.year ) || AppCore.getVectorDate().includes(model.day + "." + 0+(model.month +1 ) + "." + model.year ) ?  "black" : "gainsboro"
                color: AppCore.getColorTextCalendar(Qt.formatDate(model.date,"dd.MM.yyyy"))
                anchors.horizontalCenter: parent.horizontalCenter
                anchors.verticalCenter: parent.verticalCenter
                text: model.day
                font.weight: Font.ExtraLight
            }

            MouseArea{
                anchors.fill: parent
                onClicked: {
                    rectangleDelegat.color = "blue"
                    textDelegat.color = "white"
                    //console.log(model.day + "." + (model.month +1 ) + "." + model.year )
                    //console.log(numberEnterDate)
                    numberEnterDate++
                    if(numberEnterDate === 1 && model.model.month < 10) {AppCore.setDateOypr1(model.day + "." + 0 + (model.month +1 ) + "." + model.year )}
                    if(numberEnterDate === 1 && model.model.month >= 10) {AppCore.setDateOypr1(model.day + "." + (model.month +1 ) + "." + model.year )}
                    if(numberEnterDate >= 2 && model.model.month < 10) {
                        if(date >= Date.fromLocaleString(Qt.locale(), AppCore.getDateOypr1(), "dd.MM.yyyy")){
                        AppCore.setDateOypr2(model.day + "." + 0 + (model.month +1 ) + "." + model.year )
                        }
                        else{
                            AppCore.date2RavnoDate1()
                            AppCore.setDateOypr1(model.day + "." + 0 + (model.month +1 ) + "." + model.year )
                        }
                        loader.source = "FirstWindow.qml"
                    }
                    if(numberEnterDate >= 2 && model.model.month >= 10) {
                        if(date >= Date.fromLocaleString(Qt.locale(), AppCore.getDateOypr1(), "dd.MM.yyyy")){
                            AppCore.setDateOypr2(model.day + "." + (model.month +1 ) + "." + model.year )
                        }
                        else{
                            AppCore.date2RavnoDate1()
                            AppCore.setDateOypr1(model.day + "." + (model.month +1 ) + "." + model.year )
                        }
                        loader.source = "FirstWindow.qml"
                    }
                    mothGrid1.update()
                    model.update()
                }
            }
        }
    }
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

3
Михаиллл
  • 14 серпня 2019 р. 15:03
  • Відповідь була позначена як рішення.

Смог сделать только преходом на месяц туда и обратно

                        if (mothGrid1.month > 0) {mothGrid1.month--;}
                        if (mothGrid1.month == 0) {mothGrid1.month = 11; mothGrid1.year--;}
                        if (mothGrid1.month < 11) {mothGrid1.month++;}
                        if (mothGrid1.month == 11) {mothGrid1.month = 0; mothGrid1.year++;}
    Pavel K.
    • 15 серпня 2019 р. 03:04
    • (відредаговано)

    вот тут

    MouseArea{
         anchors.fill: parent
         onClicked: {
                после изменения цвета 
                вызываем переотрисовку моделт}
    }
    

    у вас модель не явно задана, я пока не пойму как перерисовать ее

    если бы я из плюсов делал(через qmlRegisterType) , было бы что то вроде

    Page {
        id: page
        allowedOrientations: Orientation.All
         model:yourClassModel.createCalendar()
    // some code
         MouseArea{   
             onClicked: {
             меняем цвета ()
            yourClassModel.createCalendar()
        } 
    }
    
      Михаиллл
      • 15 серпня 2019 р. 03:19

      Плюсы и qml отличаются, с++ логичней

        Коментарі

        Only authorized users can post comments.
        Please, Log in or Sign up
        AD

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Результат:50бали,
        • Рейтинг балів-4
        m
        • molni99
        • 26 жовтня 2024 р. 01:37

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Результат:80бали,
        • Рейтинг балів4
        m
        • molni99
        • 26 жовтня 2024 р. 01:29

        C++ - Тест 004. Указатели, Массивы и Циклы

        • Результат:20бали,
        • Рейтинг балів-10
        Останні коментарі
        ИМ
        Игорь Максимов22 листопада 2024 р. 11:51
        Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
        Evgenii Legotckoi
        Evgenii Legotckoi31 жовтня 2024 р. 14:37
        Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
        A
        ALO1ZE19 жовтня 2024 р. 08:19
        Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
        ИМ
        Игорь Максимов05 жовтня 2024 р. 07:51
        Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
        d
        dblas505 липня 2024 р. 11:02
        QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
        Тепер обговоріть на форумі
        Evgenii Legotckoi
        Evgenii Legotckoi24 червня 2024 р. 15:11
        добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
        t
        tonypeachey115 листопада 2024 р. 06:04
        google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
        NSProject
        NSProject04 червня 2022 р. 03:49
        Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
        9
        9Anonim25 жовтня 2024 р. 09:10
        Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

        Слідкуйте за нами в соціальних мережах