よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

February 08, 2004 [おもひで]

[Misc] あー

何もやる気が起きない....。久しぶりだ、ここまでダメなのは...。

[Misc] UNIX USER 2004.3

かずひこさん、村田さん、しげゆきさんによるフォント徹底解剖を読む。あまりこの辺をきちんと理解しようと思ったことがなかったので、とても勉強になる。

っと途中で何気なくRuby-GNOME2のサンプルが。たむらさんの記事といい、意外なところで脇役として出てくるのでびっくりする。Ruby-GNOME2が出てる雑誌は記念買いしてるんだけど、今回はあやうく買い損ねるところだった(^^;)。

でも、こういった他の記事の合間にさも普通のことのようにRubyとRuby-GNOME2の記事が出てくるのはとてもありがたいことだと思う。

とりあげてくださったお三方に感謝です。

ちょっとだけやる気が復活してきた。明日からがんばろう。

#せめて金曜日に読んでおけば土日もう少し何かできたかもしれないなぁ(^^;)。

[Ruby-GNOME2] ダイアログの書き方

先のUNIX USERでRuby-GNOME2のサンプルとしてあげられてるのが以下のようなスクリプトだ。

require 'gtk2'
Gtk.init
fontsel = Gtk::FontSelectionDialog.new("gtkfontsel").show
fontsel.signal_connect("delete-event"){ Gtk.main_quit }
fontsel.cancel_button.signal_connect("clicked"){ Gtk.main_quit }
fontsel.ok_button.signal_connect("clicked") do
  puts fontsel.font_selection.font_name
  Gtk.main_quit
end
Gtk.main

これはこれで良いんだけど、実はGTK+-2.0系からのGtk::Dialog#runを使うともっと短く簡潔に書くことができる。Gtk.mainもいらない。

require 'gtk2'
Gtk.init
fontsel = Gtk::FontSelectionDialog.new("gtkfontsel")
case fontsel.run
when Gtk::Dialog::RESPONSE_OK
  puts fontsel.font_name
end
#fontsel.destroy  #厳密には必要なんだけどこのくらいのサンプルの場合は無くても良いかな

このやり方は、「ボタンをクリックすると必ずウインドウを閉じる」という場合に有効だ。

とはいえ「OKボタンをクリックしたときウインドウを閉じない」場合は、このGtk::Dialog#runを使うやり方ではなくUNIX USERの例が必要になるかな。

本日のツッコミ(全2件) [ツッコミを入れる]
かずひこ (February 09, 2004 00:13)

ふふふ。やっと気がつきましたか。
「ページ数オーバーです」と言われたときに、そこだけは死守したのです。v(--)

むとぽん (February 09, 2004 01:22)

おー、死守していただいたんですね。ありがとうございます。


編集