AlexAug. 30, 2017, 12:49 a.m.
Как передать из C++ в Qml массив структур.
Доброго времени суток, подскажите пожалуйста как из C++ части в Qml передать массив структур. К примеру есть структура
struct TankShell { int position_1; int position_2; int direction; int speed; };Есть класс, не привожу весь, через свойства я хочу передавать массив структур:
class bcGame : public QObject { Q_OBJECT Q_PROPERTY(QVector<TankShell> m_shellsArr READ getShellsCoords NOTIFY sigShellsMove)
Графическая часть:
GameObj { id: gm } function drawNewShellsPosition(data) { console.log(gm.getShellsCoords()) }Выдаётся ошибка:
qrc:/qml/main.qml:234: Error: Unknown method return type: QVector<TankShell> из этой строки console.log(gm.getShellsCoords())
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
B
- Bogdannn
- March 28, 2024, 5:15 a.m.
C++ - Test 001. The first program and data types
- Result:46points,
- Rating points-6
Last comments
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоFeb. 5, 2024, 12:50 p.m.
EVADec. 25, 2023, 9:30 p.m.
Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Now discuss on the forum
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru CodreanuJan. 19, 2024, 10:57 p.m.
BlinCTDec. 27, 2023, 7:57 p.m.
ДмитрийJan. 10, 2024, 3:18 p.m.
Evgenii LegotckoiDec. 12, 2023, 5:48 p.m.
Хороший вопрос. У самого руки не доходят разобраться с ним, хотя уже поджимает решить этот вопрос. По идее просто структуру передать не получится... А вот если это будет класс наследованный от QObject и зарегистрированный в качестве Qml Meta Type, то должно сработать. Правда сам ещё не проверял, надо будет на днях поколупать.
Понял вас, ищу решение данного вопроса, если решу раньше вас то выложу.
Да. Ещё один момент, все поля класса, к которым вы захотите иметь доступ должны быть обработаны макросом Q_PROPERTY
В общем нашёл выход, не знаю насколько правильный, но он работает. Если у вас получится по другому то напишите потом пожалуйста.
МЕТОДЫ И СИГНАЛ КЛАССА
И в самом Qml ловим этот сигнал и обрабатываем:
Взял на заметку! Спасибо за решение!
Там есть звёздочка. Можете добавить в избранное, чтобы было в личном кабинете сайта.
может тоже кому надо будет - QML не принимает
, при попытке вывести полученый вектор QML показывает что это
но работать с ним не может. Тоже решал вопрос по примеру ТС - через несколько простых векторов