findChild()
とC++のようなオブジェクトを見つけるにはどうすればよいですか?QmlのobjectNameでjavascriptからオブジェクトを取得するには?
答えて
QML側では、通常、Qt/C++側の親子関係にアクセスすることはできませんが、視覚的な親子関係のみにアクセスできるため、C++に頼る必要があります。
QObject
と名前を持つメソッドを公開するオブジェクトを作成し、このオブジェクトの関数findChild
を呼び出します。
視覚的な子だけを探したい場合は、JS内のビジュアルツリー上に再帰的なbfsを実装し、これを呼び出すことができます。
しかし、私がコメントしたように:もしあなたがこれを必要とするなら、あなたはたぶん別の場所でうんざりして、findChild()
なしでそれをやるべき方法について考えるべきでしょう。これを使うのはC++ではお勧めできませんが、QMLではそうではありません。
再帰的検索であるため、パフォーマンスを低下させるのに最善を尽くします。 UIには簡単に何千もの要素が含まれており、常にstring
を比較する必要があります。さらに依存している人には、あなたが依存していることを知らせていないものに忍び寄ってアクセスすることによって、依存関係について嘘をつきます。
objectName
とfindChild
を呼び出すオブジェクトがコードの同じ論理部分にない可能性があります。したがって、誰かがこのオブジェクトまたはobjectNameを変更する可能性がある場合、簡単に壊れてしまいます。もう存在しない。
さらに、オブジェクト名が正しくタイプされているとは限らないため、正しいタイプであることが保証されています。正しいオブジェクトです。
このようなオブジェクトにアクセスするには、デザイン全体が最適ではありません。
免責事項:私はそれに私の時間を無駄にしたくないので、私の提案された解決策を試していない。
'text'コンポーネントのテキストプロパティを変更したい。私は次のJSON '' {"id": "text1"、 "newText": "Pizza"}、{"id": "text1"、 "newText": "Ramen"}] 'を持っています。 Idは、テキストコンポーネントのobjectNameおよびidです。このIDのテキストを取得するには? – Usmiech
私は自分自身の関数 'getObjectByName(name)'を書くことによってそれを行うことができました。幸いにも、私のすべてのオブジェクトは 'container'にあったので、' itemAt(i).objectName'と 'contentChildren'を使って線形検索を行うことができました。それを行うのは正しい方法ですか? – Usmiech
- 1. 別のQmlからQmlのプロパティから値を取得するには?
- 2. javascript ASP.NETでセッションからオブジェクトのリストを取得するには?
- 3. MDI AreaサブウィンドウのobjectNameを取得する方法は?
- 4. JSONからjavascriptでPOJOオブジェクトを取得する方法は?
- 5. JavaScriptSerializerからJavascriptオブジェクトを取得するには?
- 6. get_valueを使用してobjectNameを取得する方法は?
- 7. QMLからのマウスイベントの取得
- 8. オブジェクト内のオブジェクトから各値を取得する - JavaScript
- 9. JavaScriptオブジェクトから情報を取得
- 10. QStringListModelから行を取得する(qmlから)
- 11. javascript配列で使用するtxtファイルからオブジェクトを取得するには?
- 12. オブジェクトの配列からJavaScriptオブジェクトを取得します
- 13. QMLのデフォルトのボタンのクイックコントロールは、QML SystemPaletteではなく、その色をどこから取得しますか?
- 14. どのようにWebkitからjavascriptからjavascriptの新しいオブジェクト情報を取得するのですか?
- 15. JavaScriptオブジェクトからすべてのアイテムを取得する
- 16. QMLの戻り値をPythonメソッドから取得する
- 17. QMLプロパティの値をC++から取得する方法
- 18. 配列からオブジェクトのインデックスを取得する方法[JavaScript]?
- 19. CのJavaScriptオブジェクトから値を取得する方法#
- 20. PHPのオブジェクトからオブジェクトの値を取得するには?
- 21. Javascriptでウェブページ 'オブジェクト'を取得
- 22. QTのjavascriptからQMLキャンバスにアクセス
- 23. QMLはロードされたqmlウィンドウのwinIdを取得します
- 24. json文字列のjavascriptオブジェクトから 'value'を取得するには?
- 25. Javascriptで動的オブジェクトのプロパティを取得するには?
- 26. HTMLオブジェクトから要素を取得するjavascript
- 27. GraphQLSchema javascriptオブジェクトから.graphqlファイルを取得する方法?
- 28. javascript idからオブジェクトIDを取得する
- 29. JavaScriptオブジェクトから配列を取得する
- 30. JavaScriptフィルタメソッドからトップ100オブジェクトを取得する方法
なぜこれをやりたいですか?あなたはC++からであってはいけないので、JSからやってはいけません。 Mayeあなたはむしろ何かに頼ることなく謎を解くことができる方法を尋ねるべきです。findChild() 'ish。 – derM