最初のアプリケーション

English

次のアプリケーションは、ボタンを1つ配置したネイティブウィンドウを開きます。 ボタンをクリックするとメッセージボックスが表示されます。

ここでは、ガイドの大部分で使用する通常のオブジェクト指向APIを使います。 同等のブロック形式はコーディングスタイルで説明します。


require "uing"

UIng.init

window = UIng::Window.new("Hello World", 300, 200)
window.on_closing do
  UIng.quit
  true
end

button = UIng::Button.new("Click me")
button.on_clicked do
  window.msg_box("UIng", "Hello from Crystal!")
end

window.child = button
window.show

UIng.main
UIng.uninit

ソースをhello.crとして保存し、実行します。


crystal run hello.cr

コードの流れ

  1. UIng.initがネイティブGUIバックエンドを初期化します。
  2. Window.newとButton.newがネイティブコントロールを作成します。
  3. on_clickedがクリック後に実行する処理を登録します。
  4. window.childへの代入でボタンをウィンドウ内に配置します。
  5. window.showがインターフェースを表示します。
  6. UIng.mainがイベントループを開始し、終了時のコールバックがUIng.quitを呼ぶまで待機します。
  7. UIng.uninitがイベントループ終了後にアプリケーション全体のリソースを解放します。

on_closingからtrueを返すと、ウィンドウを閉じることができます。UIng.initには ブロックを渡す書き方もあり、その場合はイベントループが終了した後にUIng.uninitが 自動的に呼び出されます。詳しくはランタイムとライフタイムを 参照してください。