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

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

 
(同じ利用者による、間の1版が非表示)
129行目: 129行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
また、読み込んだカスタムQMLタイプのスロットを受信する場合、<code>Connections</code>タイプを<code>Loader</code>タイプの<code>item</code>プロパティと一緒に使用する必要がある。<br>
また、読み込んだカスタムQMLタイプがシグナルを送信してそれを呼び出し側が受信する場合、<code>Connections</code>タイプを<code>Loader</code>タイプの<code>item</code>プロパティと一緒に使用する必要がある。<br>
また、読み込んだカスタムQMLタイプが破棄された場合、カスタムQMLタイプが再び生成されるまで、全てのシグナルハンドラは無視される。<br>
  <syntaxhighlight lang="qml">
  <syntaxhighlight lang="qml">
// main.qmlファイル
  Loader {
  Loader {
     id: pageLoader  
     id: pageLoader  
140行目: 143行目:
   
   
     // Qt 5.14以前の場合
     // Qt 5.14以前の場合
     onBackPagePressed: {
     onMessage: {
       pageLoader.source = ""
       pageLoader.source = ""
     }
     }
   
   
     // Qt 5.15以降の場合
     // Qt 5.15以降は、以下に示すシンタックスでも可能
     function onBackPagePressed()
     function onMessage()
     {
     {
       pageLoader.source = ""
       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!")
      }
     }
     }
  }
  }