Size: a a a

2021 January 03

SK

Serguei Khvatov in Qt
∆̷𝕟𝕕
Здравствуйте, подскажите, пожалуйста, может ли быть такое, что после обновления Qt Creator в коде появился баг?
Запросто. Только не появился, а проявился старый. По себе знаю, часто бывало.
источник

∆̷𝕟𝕕 in Qt
Serguei Khvatov
Запросто. Только не появился, а проявился старый. По себе знаю, часто бывало.
Да, именно, старый проявился. Спасибо!
источник

ПК

Побитый Кирпич... in Qt
Вопрос по QML:

У меня есть C++ модель и код в QML:
myModel.addNewItem({
   "field1": 123,
   "field2": someText
})
где field1 и field2 это роли модели.
Как реализовать такой метод в С++ (какая у него должна быть сигнатура)?

Короче, я хочу реализовать append как у ListModel. С ним такой код работает.
источник

МВ

Макс Воробьев... in Qt
Побитый Кирпич
Вопрос по QML:

У меня есть C++ модель и код в QML:
myModel.addNewItem({
   "field1": 123,
   "field2": someText
})
где field1 и field2 это роли модели.
Как реализовать такой метод в С++ (какая у него должна быть сигнатура)?

Короче, я хочу реализовать append как у ListModel. С ним такой код работает.
QVariantMap
источник

ПК

Побитый Кирпич... in Qt
Спасибо, попробую. А какие ещё есть способы вот так вот на лету в QML создать объект и передать его в С++ код?
источник

МВ

Макс Воробьев... in Qt
Побитый Кирпич
Спасибо, попробую. А какие ещё есть способы вот так вот на лету в QML создать объект и передать его в С++ код?
зарегистрировать + Component + createObject
источник

МВ

Макс Воробьев... in Qt
и у ListModel append работает немного не так вродь
источник

МВ

Макс Воробьев... in Qt
append создает объект с дефолтными полями и потом объект обновляется через setData
источник

ПК

Побитый Кирпич... in Qt
Макс Воробьев
и у ListModel append работает немного не так вродь
Меня интересует именно такой синтаксис вызова. Или похожий, когда как designated initializers.
источник

МВ

Макс Воробьев... in Qt
Побитый Кирпич
Меня интересует именно такой синтаксис вызова. Или похожий, когда как designated initializers.
источник

МВ

Макс Воробьев... in Qt
только тебе через  setProperty нужно распарсить мапу в объект
источник

МВ

Макс Воробьев... in Qt
т е будет что-то типа

obj = MyObject()
for k, v in objmap:
   obj.setProperty(k, v)
источник

МВ

Макс Воробьев... in Qt
источник

ПК

Побитый Кирпич... in Qt
Макс Воробьев
только тебе через  setProperty нужно распарсить мапу в объект
А вот такой вопрос - если я создам и зарегаю некий ModelItem как Q_GADGET, я его по идее смог принять в С++:
Q_INVOKABLE void addNewItem(ModelItem item);

А как такой ModelItem создать в QML?
Я нашёл в интернете только способ через "метод фабрику".
источник

МВ

Макс Воробьев... in Qt
Побитый Кирпич
А вот такой вопрос - если я создам и зарегаю некий ModelItem как Q_GADGET, я его по идее смог принять в С++:
Q_INVOKABLE void addNewItem(ModelItem item);

А как такой ModelItem создать в QML?
Я нашёл в интернете только способ через "метод фабрику".
через Component + createObject
источник

МВ

Макс Воробьев... in Qt
но там у меня был какой-то баг, когда Component удалялся раньше созданных им объектов
источник

ПК

Побитый Кирпич... in Qt
Макс Воробьев
через Component + createObject
А это с Q_GADGET точно работает? Там parent передаётся, как будто нужно наследование от QObject
источник

МВ

Макс Воробьев... in Qt
с Q_GADGET не работал
источник

МВ

Макс Воробьев... in Qt
передай QVariantMap
источник

ПК

Побитый Кирпич... in Qt
Макс Воробьев
передай QVariantMap
в addNewItem(ModelItem item)?
источник