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

 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==


<br><br>
== 値型 ==
==== 値型変数とは ====
QMLは、組み込みとカスタムの値型をサポートしている。<br>
<br>
値型とは、参照ではなく値で渡されるものであり、intやstring等の値である。<br>
これは、QMLのオブジェクト型とは対照的である。オブジェクト型は参照により渡される。<br>
<br>
オブジェクト型のインスタンスを2つの異なるプロパティに割り当てた場合、両方のプロパティに同じ値が渡される。<br>
この時、オブジェクトを変更すると、両方のプロパティに反映される。<br>
<br>
値型のインスタンスを2つの異なるプロパティに割り当てた場合、プロパティは別々の値を持つ。(一方を変更しても、もう一方の値は変化しない)<br>
オブジェクト型とは異なり、値型はQMLオブジェクトの宣言に用いることができない。<br>
例えば、int{}オブジェクトやsize{}オブジェクトを宣言することはできない。<br>
<br>
値型は、参照するために用いることができる。<br>
* 単一の値 (例. int型は単一の数値)
* プロパティとメソッドを含む値 (例. size型は、widthとheightのプロパティを持つ値)
* 汎用型である<code>var</code>型は、他の任意の型の値を保持することができるが、それ自体は値型である。
<br>
ある変数やプロパティが値型を保持し、それが別の変数やプロパティに代入される時、値のコピーが作成される。<br>
<br>
var型は、任意のデータ型を参照できる汎用的なプロパティ型である。<br>
これは、通常のJavaScriptで使用される変数と同様である。<br>
例えば、var型のプロパティには、数値、文字列、オブジェクト、配列、関数を格納することができる。<br>
<br>
==== string型 ====
===== 大文字・小文字の区別 =====
QMLでは、文字列の大文字・小文字を区別せずに比較する場合は、<code>toLowerCase</code>メソッドを使用する。<br>
<syntaxhighlight lang="qml">
property string str = "Hoge"
if (section.name.toLowerCase() === "hoge") {
    // ...略
}
</syntaxhighlight>
<br>
<u>※注意</u><br>
<u>パフォーマンスを考慮する必要がある場合、頻繁に実行される比較では<code>toLowerCase</code>メソッドの使用は避けて、初期化時に小文字変換した値を保持する。</u><br>
<br>
==== 配列 ====
===== 空の要素の削除 =====
* filterメソッドを使用する場合
<syntaxhighlight lang="qml">
hoge = hoge.filter(function(element) {
    return element !== "";
});
</syntaxhighlight>
<br>
* アロー関数を使用する場合
<syntaxhighlight lang="qml">
hoge = hoge.filter(element => element !== "");
</syntaxhighlight>
<br>
* より詳細な条件が必要な場合 (配列要素にnullおよびundefinedが存在する場合)
<syntaxhighlight lang="qml">
hoge = hoge.filter(element => {
    return element !== "" && element !== null && element !== undefined;
});
</syntaxhighlight>
<br>
<u>※注意</u><br>
* この操作は新しい配列を生成するため、元の配列は変更されない。<br>そのため、QMLのプロパティバインディングを維持するため、新しい配列を元のプロパティに代入する必要がある。
* この操作は、プロパティが変更可能 (property var型) である場合のみ有効である。
<br>
===== 空白要素の削除 =====
<code>trim</code>メソッドを使用して空白文字のみの要素を削除する。<br>
<br>
<syntaxhighlight lang="qml">
property var hoge: ["hoge", "piyo", " ", "  "]
hoge = hoge.filter(element => element.trim() !== "");
</syntaxhighlight>
<br><br>
<br><br>


204行目: 277行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:Qt]]
[[カテゴリ:Qt]]