Михаиллл
Михаиллл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
        sf

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

        • Результат:90бали,
        • Рейтинг балів8
        МВ

        Qt - Тест 001. Сигналы и слоты

        • Результат:68бали,
        • Рейтинг балів-1
        ЛС

        C++ - Тест 001. Первая программа и типы данных

        • Результат:53бали,
        • Рейтинг балів-4
        Останні коментарі
        A
        ALO1ZE19 жовтня 2024 р. 14:19
        Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
        ИМ
        Игорь Максимов05 жовтня 2024 р. 13:51
        Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
        d
        dblas505 липня 2024 р. 17:02
        QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
        k
        kmssr09 лютого 2024 р. 00:43
        Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
        АК
        Анатолий Кононенко05 лютого 2024 р. 07:50
        Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
        Тепер обговоріть на форумі
        J
        JacobFib17 жовтня 2024 р. 09:27
        добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
        ИМ
        Игорь Максимов03 жовтня 2024 р. 10:05
        Реализация навигации по разделам Спасибо Евгений!
        JW
        Jhon Wick01 жовтня 2024 р. 21:52
        Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
        КГ
        Кирилл Гусарев27 вересня 2024 р. 15:09
        Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
        F
        Fynjy22 липня 2024 р. 10:15
        при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

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