Есть класс, производный от QObject
.
class MyClass : public QObject
{
Q_PROPERTY(int a READ...)
}
Если объекты этого класса складывать в список QList<QObject*>
, то они подхватываются в QML и отображаются в ListView
. А если использовать QList<MyClass*>
, то ListView
оказывается пустым. Но хотелось бы в c++-коде использовать именно QList<MyClass*>
, а лучше QList<QSharedPointer<MyClass>>
, так как в противном случае придётся использовать восходящее приведение типов, что может привести к ошибкам. Какие есть способы такое провернуть?
Унаследуйтесь от QAbstractListModel, реализуйте методы data, сount и roles и т.д этого класса и наследник засуньте в макрос QML_DECLARE_TYPE()
Итого сможете использовать в QML как объект
class MyModel: public QAbstractListModel
{
Q_OBJECT
public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
int rowCount(const QModelIndex &parent) const;
QHash<int,QByteArray> roleNames() const;
private:
QList<MyCustomClass*> mList;
};
QML_DECLARE_TYPE(MyModel)
Подскажите, что не такПо условию вроде правильно, насколько я понял, но проверку не проходит
Проблема заключается в следующем: написал общую ф-ию initNetAddressFromEndpoint которая по IP адресу (IPv4, IPv6, доменное имя) и порту отдает нам структуру...
Есть код, который нужно переделать, но пока не силен в jsСейчас код вызывается inline через onclick, а мне нужно, чтобы он вызывался непосредственно...