スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ruby-gnome2で簡単なダイアログを表示する

最初に簡単なダイアログを表示して、実行するかどうか聞く
スクリプトを書いた。
で、そのダイアログ表示部分をメモしとく。

Ruby と ruby-gnome2 が必要。

YesNoDialog

require 'gtk2'
# ↑ここでエラーになる場合は sudo aptitude install ruby-gnome2

class YesNoDialog
extend Forwardable

def initialize(_title = "", _message = "")
# 各ウィジェットの生成
@lbl = Gtk::Label.new(_message)
@yes_btn = Gtk::Button.new("_Yes")
@no_btn = Gtk::Button.new("_No")

# ウィンドウの生成
@window = Gtk::Window.new
@window.signal_connect("destroy") do
Gtk.main_quit
end
@window.title = _title
@window.set_window_position(Gtk::Window::POS_CENTER)
@window.set_default_size(260, 60)

# パッキング
hbox = Gtk::HBox.new(true, 0)
hbox.pack_start(@yes_btn, true, true, 5)
hbox.pack_start(@no_btn, true, true, 5)
vbox = Gtk::VBox.new(false, 0)
vbox.pack_start(@lbl, false, false, 5)
vbox.pack_start(hbox, false, false, 5)
@window.add(vbox)
end

def_delegators :@window, :show_all, :title, :title=
def_delegator :@lbl, :text, :message
def_delegator :@lbl, :set_text, :message=

def yes_clicked
@yes_btn.signal_connect("clicked") do
yield
end
end

def no_clicked
@no_btn.signal_connect("clicked") do
yield
end
end
end

=begin
def main
dialog = YesNoDialog.new("なんかタイトル", "なんかメッセージ")
dialog.yes_clicked do
puts 'yes yes!'
end
dialog.no_clicked do
puts 'no no!'
end

dialog.show_all
Gtk.main
end

main
=end

スポンサーサイト
プロフィール

ossan78

Author:ossan78

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
QRコード
QRコード
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。