Rubyでのタイトルバーなしのウィンドウ

・プログラミング言語Ruby

 プログラミング言語の一つにRubyというものがある。日本で開発されたもので、日本語の文献が多い特徴を持つ。ところが、C#,C++,python,java,rustなどに言語が台頭している今、Rubyを扱う記事は少なく、記事も2000年代に書かれているものなど古いものが多いので参考にするときに困ることがある。今回はタイトルバーなしのウィンドウをRubyで作ろうとして躓いたのでこちらに記す。

・Tkの利用

 RubyでGUIを扱うときは当然他の言語と同じようにGUIライブラリを使うことになる。Rubyで使うものとするとGTK,Tk,libuiなどがあるが、今回は「タイトルバーなしのウィンドウを作る」という制限がついている。真っ先に思いかぶのはGTKでwindow_set_decoratedを利用することだが、Rubyだとこれが用意されていないかこれを利用したサンプル例がインターネット上に全く見当たらない。(個人で色々試行錯誤したが無理だった。)なので、Tkのoverrideredirectを使うことになる。Ruby/Tkに関してはインストール方法やサンプルをまとめた便利な記事があるのでそれを参照してインストールし、以下のプログラムを記述する。(最低640*480のウィンドウで実行すること)

require 'tk'

rootwindow = TkRoot.new
rootwindow.overrideredirect(true)
rootwindow.geometry = "300x300+0+0"

Tk.mainloop


(LinuxMint 21.3で実行)
プログラムの作成にあたり、2004年の九工大の記事を参考にしたが、こちらのサイトのほうが詳しい(後から気付いた)。 左上に灰色のウィンドウが表示されれば成功。この状態ではウィンドウを閉じることができないのでターミナルでCtrl+Cを入力し終了する。

記事作成日:2024/03/27
情報最終電送日:2024/03/27
執筆:虚時間fλ