RubyでGUI開発!Ruby/Tkを使ってデスクトップアプリを作ってみよう
  • facebookページ
  • twitterページ
  • 2021.03.01

    RubyでGUI開発!Ruby/Tkを使ってデスクトップアプリを作ってみよう

    Rubyと言えば「Ruby on Rails」と言っていいほど、Rubyの開発案件の多くは「Ruby on Rails」を使ったWeb開発が多いのも事実ですが、Rubyでブラウザではない、マルチプラットフォームのGUIアプリを作ることも可能です。

    この記事では、RubyでGUIを持つデスクトップアプリを開発する方法について解説していきます。

    RubyでGUIアプリが作れる?

    Ruby標準には、GUIアプリを開発するライブラリは含まれていないが、GUIライブラリを gemコマンド等でインストールすれば、WIndows / Mac / Linux上で動くマルチプラットフォームなGUIアプリが開発できます。

    C#やVBの言語を使用し、Visual Studioで作成する「Windows Forms」や「WPF」に比べると、Rubyでは、あまり複雑なGUIアプリを作ることは難しいが、簡単なGUIであれば割と簡単に作ることができます。

    例えば、メインは「Ruby on Rails」を使ったWebシステムの開発であるが、ちょっとしたGUIツールが必要になった時に、それもRubyを使って開発しておくことで、使用する言語をRubyに統一でききるといったメリットもあります。

    RubyのGUIライブラリ

    RubyでGUIアプリを開発する場合は、次のようなライブラリがあります。

    • Ruby/Tk
    • Ruby-GNOME2
    • QTRuby
    • Ruby/FLTK
    • wxRuby
    • WideStudio

    上記のように、RubyのGUIライブラリは割と多くありますが、開発やメンテナンスが止まっているライブラリもあるため、GUIライブラリの選定時には注意が必要です。

    今回は「Tcl/Tk」をRubyから扱えるようにした「Ruby/Tk」を使ってGUIアプリを作るサンプルをいくつか紹介していきます。

    Ruby/Tkのインストール

    gemコマンドで「Ruby/Tk」をインストールします。

    インストール後 1 gem installedと表示されればOKです。

    ポテパンダの一言メモ

    Ruby2.3以前までは、「Ruby/Tk」は標準のパッケージに含まれていたが、2.4以降は個別にインストールする必要があります。

    簡単な画面を作ってみよう

    Ruby/Tkをインストールしたら、まずはラベルにメッセージを表示するだけの簡単な画面を作ってみましょう。

    次のように、 TKLabelのインスタンスを生成し Hello, TK!という文字列を画面上に表示するサンプルコードを作成し sample.rbという名前で保存します。

    保存ができたら、ターミナル(Windowsの場合はコマンドプロンプト)を起動し次のコマンドで実行します。

    実行すると、次のようなウィンドウが表示され、ラベルに「Hello, TK!」のメッセージが表示されているでしょう。

    いろんなGUI部品を使ってみよう

    簡単な画面で「Ruby/Tk」の使い方をイメージしたところで、次は「Ruby/Tk」で使用できるGUI部品をいくつか紹介していきます。

    ボタン(TkButton)

    ボタンが押された時に決められた動作をするGUI部品です。クリックされた時の動作は、 commandオプションにブロックで処理を指定します。

    次のサンプルコードではボタンを1つ画面に追加し、クリックされた時に、コンソール上に「Hello World」という文字を出力します。

    ▪️実行結果

    チェックボックス(TkCheckButton)

    チェックボックスは、ON/OFFの状態を表すGUI部品です。

    TkCheckButtononvalueには、チェックONの時に入る値、 offvalueにはチェックOFFの時に入る値を指定し、チェックON/OFFの状態に応じて、 TkVariableで宣言した変数に onvalueまた offvalueで指定した値が入ります。

    ラジオボタン(TkRadioButton)

    ▪️実行結果

    1行のテキスト入力(TkEntry)

    TkEntryは1行のみ入力可能なテキストフィールド部品です。パスワード入力のように、入力文字を伏字にする場合は、 showオプションを指定します。

    ▪️実行結果

    複数行入力できるテキスト(TkText)

    TkTextは複数行入力が可能なテキストフィールドです。

    ▪️実行結果

    さいごに

    RubyでGUIアプリが作れる「Ruby/Tk」のインストール方法から簡単な使い方を紹介してきました。

    「Ruby/Tk」のベースとなる 「Tcl/Tk」はMacやLinux上であればデフォルトでインストールされており、またWindowsでも「Tcl/Tk」をインストールすればGUIを動かすことが可能です。

    マルチプラットフォームで動く「Ruby/Tk」でちょっとしたアプリを作ってみるのも良いでしょう。

    【関連記事】
    Rubyで開発するならbundlerは必須!機能と使い方を解説



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE