📢 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> | ||