@Gytim

QmlRegisterType связать с другими типами?

создаем
qmlRegisterType("myprog",1,0,"MyClass"); и тут все ясно, но идем дальше

1. Можно его связать с другими типами в с++ коде(сигналы слоты)?
2. Либо как создать несколько классов в одном типе и обращаться к переменным в оных?
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 3
Zifix
@Zifix Куратор тега Qt
Barbatum
>Можно его связать

Кого "его"? Объект класса? doc.qt.io/qt-5/qtqml-syntax-signals.html

>Либо как создать несколько классов в одном типе

Речь о полях класса? Берем и создаем.

>и обращаться к переменным в оных

Q_PROPERTY
Ответ написан
Комментировать
@TriKrista
Возможно, вам больше подойдет это: qmlRegisterSingletonType
Ответ написан
@Gytim Автор вопроса
1. C++ написал ж :)
пример с ошибками(и не правильно все XD) но примерно такой результат нужен
spoiler
oneclass.cpp
----------------
OneClass : QObject {
...
signals: void mySignal();
}
twoclass.cpp
----------------
TwoClass : QObject {
...
public slots: void mySlot(){};
}

main.cpp
----------------
#include oneclass.cpp
#include twoclass.cpp
...
qmlRegisterType("myprog.one",1,0,"MyClass");
qmlRegisterType("myprog.two",1,0,"MyClass");
QObject::connect(OneClass, SIGNAL(mySignal), TwoClass, SLOT(mySLOT));


2. Именно классов
spoiler

oneclass.cpp
----------------
OneClass : QObject {
...
Q_PROPERTY resultData(QString resultText)

public: void calculate(QString text) { resultText = text;}
}
twoclass.cpp
----------------
#include oneclass.cpp
...
TwoClass : QObject {
private:
OneClass *oneClass;

Q_INVOKABLE void biginning(QString startText) {
oneClass.calculate(startText);
}
TwoClass:TwoClass { *oneClass = new OneClass; }
}

и в qml получить результат
MyClass.result

или по старинке пока просто в свойство пробрасывать ссыли на классы?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы