「QMLの基礎 - カスタムQMLタイプ」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の2版が非表示)
129行目: 129行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
また、読み込んだカスタムQMLタイプがシグナルを送信してそれを呼び出し側が受信する場合、<code>Connections</code>タイプを<code>Loader</code>タイプの<code>item</code>プロパティと一緒に使用する必要がある。<br>
また、読み込んだカスタムQMLタイプが破棄された場合、カスタムQMLタイプが再び生成されるまで、全てのシグナルハンドラは無視される。<br>
<syntaxhighlight lang="qml">
// main.qmlファイル
Loader {
    id: pageLoader
    source: "CustomQML.qml"
}
Connections {
    target: pageLoader.item
    // Qt 5.14以前の場合
    onMessage: {
      pageLoader.source = ""
    }
    // Qt 5.15以降は、以下に示すシンタックスでも可能
    function onMessage()
    {
      pageLoader.source = ""
    }
}
</syntaxhighlight>
<br>
<syntaxhighlight lang="qml">
// CustomQML.qmlファイル
import QtQuick 2.15
Rectangle {
    id: root
    width: 100
    height: 100
    signal message(string msg)
    MouseArea {
      anchors.fill: parent
      onClicked: {
          root.message("clicked!")
      }
    }
}
</syntaxhighlight>
<br>
==== Componentタイプを使用する場合 ====
==== Componentタイプを使用する場合 ====
Componentタイプは、複数のQMLオブジェクトをまとめてコンポーネント化して、再利用可能なオブジェクトとして部品化する。<br>
Componentタイプは、複数のQMLオブジェクトをまとめてコンポーネント化して、再利用可能なオブジェクトとして部品化する。<br>