5

これは QML 初心者の質問です。テーブルビューの例から、次のようなコードがあります:

Column {
        anchors.top: toolbar.bottom
        .....

        TabView {
            id:frame
            ......

            Tab {
                title: "XmlListModel"
                ...
            }
            Tab { ...

qmlファイルがかなり長くなるので、qmlファイルを入れ子にすることはできないのだろうか

Column {
        anchors.top: toolbar.bottom
        .....

        TabView {
            id:frame
            ......

            <include tab 1 qml file>   <-- possible ????? -------
            <include tab 2 qml file>

それが不可能な場合include、QML プログラマーはどのようにコードを構築するのでしょうか? 簡単な例でさえ、IMHO を処理するにはすでに行が多すぎます。

- 編集 -

答えの後、私はこれを読む価値があると感じました:

  1. http://qt-project.org/doc/qt-5.0/qtqml/qtqml-syntax-directoryimports.html
  2. QML でコードを再利用する方法
4

1 に答える 1

6

いいえ、「インクルード」はできませんが、名前付きオブジェクトに物を入れることはできます。

たとえば、Tab #1 ファイルを「Tab1」という名前のファイルに入れます (または、実際に表示されているものに関連するより適切な名前です。名前がわからないため、名前を付けることができません)。

したがって、Tab1.qml には次のものがあります。

import ...
Tab {
  id: tab1
  ...
}

そして、メインファイルでそれを参照できるようになりました:

...
Tabview {
   id: frame
   Tab1 { id: tab1 }
}

親は ID なしでは子内で ID を参照できないため、ID を再度含めたことに注意してください。(名前は違うかもしれませんが、そうしないでください。動物は泣くでしょう。実際には、子の id を省略することもできますが、多くの人はファイル内でそれを見ることができるのが好きです。)

于 2013-10-23T13:24:17.580 に答える