Russian Qt Forum
Ноябрь 22, 2024, 06:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача из модели QAbstractListModel QList<QPointF> в qml  (Прочитано 4530 раз)
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« : Февраль 20, 2024, 22:43 »

Всем привет.
У меня имеется в qml репитер для нескольких Shape, и чтоыб его нарисовать мне надо каждому передать лист QPointF
И может я что-то не так с этим листом делаю но у меня идет в консоли такой выпис
Код:
Could not find any constructor for value type QQmlPointFValueType to call with value QVariant(QVariantList, QList(QVariant(QPointF, QPointF(300.451,51.5492)), QVariant(QPointF, QPointF(300.451,51.5492)), QVariant(QPointF, QPointF(300.451,51.5492)), QVariant(QPointF, QPointF(300.451,51.5492)), QVariant(QPointF, QPointF(300.451,51.5492))))
PathPolyline: path of type 26 not supported

Может кто подскажет как правильно лист точек передать репитеру?
Спасибо
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Февраль 21, 2024, 10:09 »

покажи как ты в коде передаешь. судя по ошибке (constructor for ... QQmlPointFValueType to call with value ... QVariantList), ты пытаешься засунуть список точек туда, где ожидается лишь одна точка (не списочная)
« Последнее редактирование: Февраль 21, 2024, 10:11 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #2 : Февраль 21, 2024, 12:04 »

покажи как ты в коде передаешь. судя по ошибке (constructor for ... QQmlPointFValueType to call with value ... QVariantList), ты пытаешься засунуть список точек туда, где ожидается лишь одна точка (не списочная)

Вы были правы, я вместо
Код:
required property list<point> ePoints
пытался подсунуть
Код:
required property point ePoints

Но все равно не моуг нарисовать обьект.
Вот так выглядит выпис в модели перед получением точек
Код:
list:  QVariant(QList<QPointF>, QList(QPointF(300.451,51.5492), QPointF(309.439,50.8578), QPointF(310.13,41.8697), QPointF(301.142,42.5611), QPointF(300.451,51.5492)))

А вот код в qml
Код:
Repeater
        {
            id: repeaterLimitShape

            model: root.pelData.gaugeLimitModel
            anchors.fill: parent

            delegate: Shape
            {
                id: delegateLimitShape

                required property list<point> ePoints

                anchors.fill: parent
                layer.samples: 8

                ShapePath
                {
                    id: trackShapeLimit

                    capStyle:    Qt.FlatCap
                    strokeColor: "red"
                    fillColor: "red"
                    strokeWidth: 1

                    Component.onCompleted:
                    {
                        console.log("ePoints: ", delegateLimitShape.ePoints)
                    }

                    PathPolyline
                    {
                        id: ppl

                        path: delegateLimitShape.ePoints

                    }
                }
            }
        }

Выпис в консоли выглядит вот так
Код:
qml: ePoints:  []

Тут я немного в растерянности.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Февраль 22, 2024, 12:02 »

смущает anchors.fill: parent

попробуй распечатать ePoints в Shape, а не в ShapePath

на уровне модели все правильно написано? может имя роли перепутал?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #4 : Февраль 26, 2024, 10:34 »

Все таки ошибка была с именами пропертей.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.