Próbuję przekazać QList
liczby całkowitej z QML do kodu C++, ale jakoś moje podejście nie działa. Z poniższej podejścia otrzymuję następujący błąd:Jak przekazać QList z QML do C++/Qt?
left of '->setParentItem' must point to class/struct/union/generic type
type is 'int *'
Jakiekolwiek wejścia do kłopotów strzelać kwestia jest wysoko ceniona
Poniżej jest mój urywek kodu
plik nagłówka
Q_PROPERTY(QDeclarativeListProperty<int> enableKey READ enableKey)
QDeclarativeListProperty<int> enableKey(); //function declaration
QList<int> m_enableKeys;
plik cpp
QDeclarativeListProperty<int> KeyboardContainer::enableKey()
{
return QDeclarativeListProperty<int>(this, 0, &KeyboardContainer::append_list);
}
void KeyboardContainer::append_list(QDeclarativeListProperty<int> *list, int *key)
{
int *ptrKey = qobject_cast<int *>(list->object);
if (ptrKey) {
key->setParentItem(ptrKey);
ptrKey->m_enableKeys.append(key);
}
}
'' m_enableKeys' setParentItem' i nie są członkami 'int', ale spróbować wywołać je na klucz i ptrKey które są zarówno int * tak, że nigdy nie będzie działać .. – stijn
pamiętać, że' QDeclarativeListProperty'/'QQmlListProperty' jest przydatny tylko do dostarczania listy elementów podrzędnych, które są tylko pochodnymi QObject, i listy tej nie można modyfikować po upływie czasu instancji. – TheBootroo