Tôi đang cố gắng để vượt qua QList
của số nguyên từ mã QML đến C++, nhưng bằng cách nào đó cách tiếp cận của tôi không hoạt động. Với phương pháp dưới đây đang nhận được lỗi sau:Làm cách nào để chuyển QList từ QML sang C++/Qt?
left of '->setParentItem' must point to class/struct/union/generic type
type is 'int *'
Bất kỳ đầu vào rắc rối shoot vấn đề được đánh giá cao
Dưới đây là đoạn mã của tôi
Tiêu đề tập tin
Q_PROPERTY(QDeclarativeListProperty<int> enableKey READ enableKey)
QDeclarativeListProperty<int> enableKey(); //function declaration
QList<int> m_enableKeys;
cpp tệp
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);
}
}
'setParentItem' và' m_enableKeys' không phải là thành viên của 'int', nhưng bạn cố gắng gọi chúng trên khóa và ptrKey là cả int * để không bao giờ hoạt động .. – stijn
hãy nhớ rằng' QDeclarativeListProperty'/'QQmlListProperty' chỉ hữu ích cho việc cung cấp danh sách chỉ đọc các mục con là các mục con QObject, và danh sách đó không thể sửa đổi sau thời gian instanciation. – TheBootroo