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