2023/10/18(水) [n年前の日記]
#1 [ruby] FXRubyをWindows10上で試用
Windows10 x64 22H2上で、FXRuby を試用してみた。
_GitHub - larskanis/fxruby: FXRuby is an extension module for Ruby that provides an interface to the FOX GUI toolkit.
_fxruby | RubyGems.org | コミュニティのgemホスティングサービス
_File: README - Documentation for fxruby (1.6.46)
FXRubyは、Rubyから利用できるGUIライブラリ。 _FOX Toolkit というGUIライブラリをRubyから利用できるようにしたもの。かなり昔からあるけれど、他のRuby用GUIライブラリが軒並み開発停止になっている中、今でも開発が続いているあたり、かなり貴重なライブラリなのではないかと。
以下の環境で動作確認してみた。
ちなみに、自分、以前少しだけ試用してみたことがあるっぽい。
_mieki256's diary - FXRubyを勉強中
Windowsの場合は、これだけでインストールできる。今回は fxruby 1.6.46 x86-mingw32 がインストールされた。
_GitHub - larskanis/fxruby: FXRuby is an extension module for Ruby that provides an interface to the FOX GUI toolkit.
_fxruby | RubyGems.org | コミュニティのgemホスティングサービス
_File: README - Documentation for fxruby (1.6.46)
FXRubyは、Rubyから利用できるGUIライブラリ。 _FOX Toolkit というGUIライブラリをRubyから利用できるようにしたもの。かなり昔からあるけれど、他のRuby用GUIライブラリが軒並み開発停止になっている中、今でも開発が続いているあたり、かなり貴重なライブラリなのではないかと。
以下の環境で動作確認してみた。
- Windows10 x64 22H2 + Ruby 2.6.10 p210 i386-mingw32 (32bit版, x86) + fxruby 1.6.46 x86-mingw32
- Windows10 x64 22H2 + Ruby 3.2.2 i386-mingw32 (32bit版, x86, RubyInstaller2) + fxruby 1.6.46 x86-mingw32
ちなみに、自分、以前少しだけ試用してみたことがあるっぽい。
_mieki256's diary - FXRubyを勉強中
◎ インストール :
gem install fxruby
Windowsの場合は、これだけでインストールできる。今回は fxruby 1.6.46 x86-mingw32 がインストールされた。
◎ サンプルファイルで動作確認 :
以下のディレクトリにサンプルファイル群が入っている。
examples\ を別の場所にまるっとコピーして、その中で一通り動かしてみたけれど、FXRuby だけを使っているサンプルについては大体動かせた。他のライブラリまで要求するサンプルについては動作確認していない。
ただ、一見動いているようでも、一部のスクリプトは終了時に Segmentation fault を吐く。例えば dctest.rb は、Ruby 2.6.10 x86、Ruby 3.2.2 x86、どちらも Segmentation fault を吐いた。
更に、一部のスクリプトは、終了時に以下のメッセージを吐く。
(Rubyインストールフォルダ)\lib\ruby\gems\2.6.0\gems\fxruby-1.6.46-x86-mingw32\examples\
examples\ を別の場所にまるっとコピーして、その中で一通り動かしてみたけれど、FXRuby だけを使っているサンプルについては大体動かせた。他のライブラリまで要求するサンプルについては動作確認していない。
ただ、一見動いているようでも、一部のスクリプトは終了時に Segmentation fault を吐く。例えば dctest.rb は、Ruby 2.6.10 x86、Ruby 3.2.2 x86、どちらも Segmentation fault を吐いた。
更に、一部のスクリプトは、終了時に以下のメッセージを吐く。
../../../../ext/fox16_c/FXRuby.cpp(164): FXASSERT(SWIG_CheckConvert(rbObj, ty)) failed.例えば image.rb がこういうメッセージを吐いたりする。しかし、Ruby 2.6.10 x86 では吐くけれど、Ruby 3.2.2 x86 では吐かない。Ruby のバージョンによって問題が起きたり起きなかったりするっぽい。
◎ 問題点 :
少し触っているうちに、ふと気づいた。コレ、日本語入力ができないのでは…? scintilla-test.rb を動かして試した感じでは、IMEが無反応だった。
加えて、Alt + F4 でウインドウを閉じられない点も少し気になった。Windowsの作法に従ってないっぽい。でもまあ、他のアプリでもそういうのはあるから、そこらへんはまあいいか。
何にせよ、日本語入力ができない点は、日本語文化圏では結構痛い気がする。道理で日本国内では関連記事を全く見かけないわけで…。日本語入力を一切しないGUIアプリなら使えなくもない、みたいな話になるのだろうか。
以下の記事によると、入力はともかく、日本語表示はできるらしい。
_Rubyはじめました: rubyでGUIアプリ FxRubyのインストールとHello World!
更にググっていたら、大昔、2002年頃なら、パッチをあてることで入力できなくもない状態になってた時期もあるようで…。ただ、今ではパッチ関連のページすら消滅してる状況なので、もう誰も FOX Toolkit に日本語入力なんて期待していないということなのだろう…。
_Takahiro's inside out - fox-unicode (WebArchive)
_FOX Unicode 化 (WebArchive)
_Ruby de GUI
加えて、Alt + F4 でウインドウを閉じられない点も少し気になった。Windowsの作法に従ってないっぽい。でもまあ、他のアプリでもそういうのはあるから、そこらへんはまあいいか。
何にせよ、日本語入力ができない点は、日本語文化圏では結構痛い気がする。道理で日本国内では関連記事を全く見かけないわけで…。日本語入力を一切しないGUIアプリなら使えなくもない、みたいな話になるのだろうか。
以下の記事によると、入力はともかく、日本語表示はできるらしい。
_Rubyはじめました: rubyでGUIアプリ FxRubyのインストールとHello World!
更にググっていたら、大昔、2002年頃なら、パッチをあてることで入力できなくもない状態になってた時期もあるようで…。ただ、今ではパッチ関連のページすら消滅してる状況なので、もう誰も FOX Toolkit に日本語入力なんて期待していないということなのだろう…。
_Takahiro's inside out - fox-unicode (WebArchive)
_FOX Unicode 化 (WebArchive)
_Ruby de GUI
[ ツッコむ ]
#2 [ruby] Ruby/GTK3を試用
Windows10 x64 22H2 + Ruby で使えるGUIライブラリ FXRuby を試用してみたものの、日本語入力できない点が気になるわけで。ruby-gtk3 ならそのあたりはどうなのかなと気になったので、試用してみることにした。
_gtk3 | RubyGems.org | コミュニティのgemホスティングサービス
_The source of https://ruby-gnome.github.io/ | ruby-gnome.github.io
_GitHub - ruby-gnome/ruby-gnome: A set of bindings for the GNOME libraries to use from Ruby.
_File: README - Documentation for gtk3 (4.2.0)
2023年になっても更新されている。今でもちゃんと開発が続いてるGUIライブラリらしい。
ところで、名称がよく分からんのだけど…。Ruby/GTK3、ruby-gtk3、Ruby-GNOME2 GTK3モジュール、どの名称が正しいのだろう?
環境は以下。
以下が追加でインストールされた。
ほとんどのパッケージはビルドされてからインストールされた。つまり、Windows上で Ruby + gtk3 を使うにあたっては、ビルドするための環境が ―― DevKitが必須になる模様。
_gtk3 | RubyGems.org | コミュニティのgemホスティングサービス
_The source of https://ruby-gnome.github.io/ | ruby-gnome.github.io
_GitHub - ruby-gnome/ruby-gnome: A set of bindings for the GNOME libraries to use from Ruby.
_File: README - Documentation for gtk3 (4.2.0)
2023年になっても更新されている。今でもちゃんと開発が続いてるGUIライブラリらしい。
ところで、名称がよく分からんのだけど…。Ruby/GTK3、ruby-gtk3、Ruby-GNOME2 GTK3モジュール、どの名称が正しいのだろう?
環境は以下。
- Windows10 x64 22H2 + Ruby 2.6.10 x86 (DevKit付) + gtk3 4.2.0
- Windows10 x64 22H2 + Ruby 3.2.2 x86 (DevKit付) + gtk3 4.2.0
◎ インストール :
gem install gtk3
以下が追加でインストールされた。
gobject-introspection-4.2.0.gem glib2-4.2.0.gem pkg-config-1.5.5.gem cairo-gobject-4.2.0.gem pango-4.2.0.gem gio2-4.2.0.gem gdk_pixbuf2-4.2.0.gem gdk3-4.2.0.gem gtk3-4.2.0.gem atk-4.2.0.gem
ほとんどのパッケージはビルドされてからインストールされた。つまり、Windows上で Ruby + gtk3 を使うにあたっては、ビルドするための環境が ―― DevKitが必須になる模様。
◎ サンプルを動かして動作確認 :
以前書いたままHDDに残ってたサンプルファイル群はそのまま動いてくれた。
また、以下のページ紹介されているサンプルも動かしてみた。
_noanoa 日々の日記 : Ruby/GTK2,GTK3 プログラミング Tips(6)- テキスト入力
_noanoa 日々の日記 : Ruby/GTK2,GTK3 プログラミング Tips(4)- 画像、アニメーション
ただ、ウインドウが表示されるまでちょっと待たされる感じがする。自分が使ってる環境、AMD Ryzen 5 5600X ですら数秒待たされるので、もっとスペックが低いPCで動かしたらどうなることやら。起動時のもっさり感は尋常じゃない印象。
それでも、日本語入力ができるし、画像表示もできるし、何より開発停止になってないしで、Windows上のRubyでGUIアプリを作るなら、現状では ruby-gtk3 一択かもしれないと思えてきた。もっとも、まだexe化は試してないので、そのあたりは不安だけど…。exe化できるんかな…。
また、以下のページ紹介されているサンプルも動かしてみた。
_noanoa 日々の日記 : Ruby/GTK2,GTK3 プログラミング Tips(6)- テキスト入力
_noanoa 日々の日記 : Ruby/GTK2,GTK3 プログラミング Tips(4)- 画像、アニメーション
- テキスト入力欄(Entry)を使うサンプルを動かしてみたら、FXRuby と違って日本語入力も受け付けてくれた。
- 画像表示するサンプルが動いたので、LibUI と違って Windows上でも画像表示可能らしい。
ただ、ウインドウが表示されるまでちょっと待たされる感じがする。自分が使ってる環境、AMD Ryzen 5 5600X ですら数秒待たされるので、もっとスペックが低いPCで動かしたらどうなることやら。起動時のもっさり感は尋常じゃない印象。
それでも、日本語入力ができるし、画像表示もできるし、何より開発停止になってないしで、Windows上のRubyでGUIアプリを作るなら、現状では ruby-gtk3 一択かもしれないと思えてきた。もっとも、まだexe化は試してないので、そのあたりは不安だけど…。exe化できるんかな…。
◎ 参考になりそうなページ :
[ ツッコむ ]
以上、1 日分です。