0

engineaの次の典型的なmain関数の変数QtAppは、 の有効なインスタンスですQQmlApplicationEngine

int main(int argc, char *argv[])
{
  QGuiApplication app(argc, argv);

  QQmlApplicationEngine engine;
  engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));

  return app.exec();
}

派生クラスQQmlApplicationEngineの関数内のオブジェクトにアクセスできますか? QQuickItemはいの場合、どのように?

class TestItem : public QQuickItem {
public:
  TestItem();
  SomeMethod() {
     // Is it possible to get access to QQmlApplicationEngine here somehow ?
  }
}

TestItemサイドに登録qml&メインウィンドウに表示されるメモ。QQmlApplicationEnginefrommainメソッドを渡すことができることを知っています。しかし、私はTestItemウィンドウの一部であり、コンテキストを保持しているため、という予感があります。QQmlApplicationEngineメソッドから渡さなくても、オブジェクトまたはポインタを取得する方法が必要mainですか?

目的: I を使用すると、 my で s にQQmlApplicationEngineアクセスできます。 QQuickItemmain.qml

QQuickItem *some_quick_item = qml_engine->rootObjects()[0]->findChild<QQuickItem*>("SomeQuickItem");

だから、これを行うために、私はしたいQQmlApplicationEngine. QQuickItem内部から他の にアクセスする方法がある場合は、提案してください。

4

1 に答える 1