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

ページの作成:「== 概要 == <br><br> == ウインドウのオープン / クローズ == ウィンドウの表示および非表示する等、ウィンドウ間のスイッチング…」
 
4行目: 4行目:


== ウインドウのオープン / クローズ ==
== ウインドウのオープン / クローズ ==
ウィンドウの表示および非表示する等、ウィンドウ間のスイッチングを実装する手順を記載する。<br>
==== 静的宣言方式 ====
静的宣言方式は、QMLファイル内で直接ウインドウやコンポーネントを宣言する方法である。<br>
これは、直接的な実装を行う場合に適している。<br>
<br>
静的宣言方式の特徴を以下に示す。<br>
* コードが簡潔で可読性が良い。
* デザイン時にレイアウトが理解しやすい。
* アプリケーション起動時の初期化が速い。
* 宣言されたオブジェクトは常に存在するため、常にメモリを消費する。
<br>
以下の例では、静的宣言方式を使用して、ウインドウ間の表示・非表示をスイッチングしている。<br>
<br>
* メインウィンドウ
*: 2つのボタンがあり、各ボタンを押下する時、メインウインドウが非表示になりサブウインドウが開く。
*: 各サブウィンドウのボタンを押下する時、サブウインドウを閉じて、メインウインドウが再度表示される。
<br>
<br>
まず、QMLにおけるシグナルの構文を以下に示す。<br>
まず、QMLにおけるシグナルの構文を以下に示す。<br>
10行目: 24行目:
シグナル(<code>signal <シグナル名></code>)を宣言して、シグナルの定義を記述する。<br>
シグナル(<code>signal <シグナル名></code>)を宣言して、シグナルの定義を記述する。<br>
シグナルの定義名は、プレフィックスに"<code>on</code>"という文字を付加して、シグナル名の先頭文字を大文字にする必要がある。<br>
シグナルの定義名は、プレフィックスに"<code>on</code>"という文字を付加して、シグナル名の先頭文字を大文字にする必要がある。<br>
<br>
  <syntaxhighlight lang="qml">
  <syntaxhighlight lang="qml">
  signal closeThisWindow
  signal closeThisWindow
18行目: 33行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
以下の例では、メインウインドウの上ボタンを押下する時、メイン画面を非表示にしてサブウインドウを開く。<br>
サブウインドウを閉じる時、メイン画面を再度表示する。<br>
<br>
シグナルは、以下の例のように、サブウィンドウにおいて関数として呼び出される。<br>
<br>
なお、.proファイルとmain.cppファイルは変更していない。<br>
  <syntaxhighlight lang="qml">
  <syntaxhighlight lang="qml">
  // AnotherWindow.qml
  // AnotherWindow.qml
   
   
  import QtQuick 2.15
  import QtQuick
  import QtQuick.Controls 2.15
  import QtQuick.Controls
  import QtQuick.Window 2.15
  import QtQuick.Window
   
   
  Window {
  Window {
36行目: 45行目:
     height:320
     height:320
   
   
    // シグナルは、サブウインドウの関数として呼び出す
     signal signalExit  // シグナルの宣言
     signal signalExit  // シグナルの宣言
   
   
52行目: 62行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
メインウインドウのqmlファイル(main.qmlファイル)には、ソフトウェアの主となるロジックを実装する。<br>
<br>
以下の例では、メインウィンドウには2つのボタンがあり、各ボタンを押下する時、メインウィンドウが非表示になりサブウインドウが開く。<br>
各サブウィンドウのボタンを押下する時、サブウィンドウが閉じられて、メインウインドウが再度表示される。<br>
  <syntaxhighlight lang="qml">
  <syntaxhighlight lang="qml">
  // main.qmlファイル
  // main.qmlファイル
   
   
  import QtQuick 2.15
  import QtQuick
  import QtQuick.Controls 2.15
  import QtQuick.Controls
  import QtQuick.Layouts 1.15
  import QtQuick.Layouts
   
   
  ApplicationWindow {
  ApplicationWindow {
147行目: 153行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>


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