Size: a a a

2020 July 11

AS

Anatoly Shirokov in Qt
У тайлсервера  /tile/{z}/{x}/{y}.png
источник

AS

Anatoly Shirokov in Qt
Тебе оффлайн подложка нужна?
источник

JL

Justin L0we in Qt
Anatoly Shirokov
Тебе оффлайн подложка нужна?
Ага
источник

ПК

Побитый Кирпич... in Qt
Как правильно сделать такую структуру?
class QmlGuiElement {
 Q_PROPERTY(IDataProvider dataProvider); // Хочу устанавливать dataProvider из QML
};

class IDataProvider : public QObject { // Наследую от QObject, чтобы юзать в Q_PROPERTY
 virtual void loadData(...) = 0;
}

class DataProvider : public QObject, public IDataProvider { // Наследую QObject чтоб инстанцировать в QML
 void loadData(...) override;
}
qmlRegisterType<DataProvider>(...);

И потом в qml коде писать:
QmlGuiElement {
 dataProvider: DataProvider {}
}


При таком коде пишет, что множественное наследование от QObject не поддерживается. Как правильно должен код выглядеть?
источник

ПК

Побитый Кирпич... in Qt
Короче задача чтоб QmlGuiElement принимал абстракцию провайдера и в QML уже инстанцировать конкретный провайдер
источник

МВ

Макс Воробьев... in Qt
Побитый Кирпич
Как правильно сделать такую структуру?
class QmlGuiElement {
 Q_PROPERTY(IDataProvider dataProvider); // Хочу устанавливать dataProvider из QML
};

class IDataProvider : public QObject { // Наследую от QObject, чтобы юзать в Q_PROPERTY
 virtual void loadData(...) = 0;
}

class DataProvider : public QObject, public IDataProvider { // Наследую QObject чтоб инстанцировать в QML
 void loadData(...) override;
}
qmlRegisterType<DataProvider>(...);

И потом в qml коде писать:
QmlGuiElement {
 dataProvider: DataProvider {}
}


При таком коде пишет, что множественное наследование от QObject не поддерживается. Как правильно должен код выглядеть?
class DataProvider : public IDataProvider
источник

ПК

Побитый Кирпич... in Qt
Макс Воробьев
class DataProvider : public IDataProvider
И делать конструктор в интерфейсе?
источник

ПК

Побитый Кирпич... in Qt
Так и делают?
источник

МВ

Макс Воробьев... in Qt
Побитый Кирпич
И делать конструктор в интерфейсе?
да
источник

МВ

Макс Воробьев... in Qt
у тебя IDataProvider должен быть доступен из Qml со всеми вытекающими
источник

ПК

Побитый Кирпич... in Qt
Макс Воробьев
у тебя IDataProvider должен быть доступен из Qml со всеми вытекающими
То есть и IDataProvider регать и DataProvider?
источник

Е

Егор in Qt
Побитый Кирпич
Как правильно сделать такую структуру?
class QmlGuiElement {
 Q_PROPERTY(IDataProvider dataProvider); // Хочу устанавливать dataProvider из QML
};

class IDataProvider : public QObject { // Наследую от QObject, чтобы юзать в Q_PROPERTY
 virtual void loadData(...) = 0;
}

class DataProvider : public QObject, public IDataProvider { // Наследую QObject чтоб инстанцировать в QML
 void loadData(...) override;
}
qmlRegisterType<DataProvider>(...);

И потом в qml коде писать:
QmlGuiElement {
 dataProvider: DataProvider {}
}


При таком коде пишет, что множественное наследование от QObject не поддерживается. Как правильно должен код выглядеть?
Я не уверен опечатка ли это, но QmlGuiElement должен от куобджекта наследоваться для Q_PROPERTY
источник

МВ

Макс Воробьев... in Qt
Побитый Кирпич
То есть и IDataProvider регать и DataProvider?
да
источник

ПК

Побитый Кирпич... in Qt
Егор
Я не уверен опечатка ли это, но QmlGuiElement должен от куобджекта наследоваться для Q_PROPERTY
опущено
источник

МВ

Макс Воробьев... in Qt
Егор
Я не уверен опечатка ли это, но QmlGuiElement должен от куобджекта наследоваться для Q_PROPERTY
+
источник

Е

Егор in Qt
а, окей
источник

AS

Anatoly Shirokov in Qt
Побитый Кирпич
Как правильно сделать такую структуру?
class QmlGuiElement {
 Q_PROPERTY(IDataProvider dataProvider); // Хочу устанавливать dataProvider из QML
};

class IDataProvider : public QObject { // Наследую от QObject, чтобы юзать в Q_PROPERTY
 virtual void loadData(...) = 0;
}

class DataProvider : public QObject, public IDataProvider { // Наследую QObject чтоб инстанцировать в QML
 void loadData(...) override;
}
qmlRegisterType<DataProvider>(...);

И потом в qml коде писать:
QmlGuiElement {
 dataProvider: DataProvider {}
}


При таком коде пишет, что множественное наследование от QObject не поддерживается. Как правильно должен код выглядеть?
Указатель используй в свойстве
источник

ПК

Побитый Кирпич... in Qt
Anatoly Shirokov
Указатель используй в свойстве
Да, опечатка
источник

AS

Anatoly Shirokov in Qt
Побитый Кирпич
Как правильно сделать такую структуру?
class QmlGuiElement {
 Q_PROPERTY(IDataProvider dataProvider); // Хочу устанавливать dataProvider из QML
};

class IDataProvider : public QObject { // Наследую от QObject, чтобы юзать в Q_PROPERTY
 virtual void loadData(...) = 0;
}

class DataProvider : public QObject, public IDataProvider { // Наследую QObject чтоб инстанцировать в QML
 void loadData(...) override;
}
qmlRegisterType<DataProvider>(...);

И потом в qml коде писать:
QmlGuiElement {
 dataProvider: DataProvider {}
}


При таком коде пишет, что множественное наследование от QObject не поддерживается. Как правильно должен код выглядеть?
у DataProvider  должна быть единственная база QObject
источник

МВ

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