5

私は次のコードを持っています:


require "gtk2"

# adds a page to the notebook with the given label
def create_page(nb,label="untitled")
    # create a textview
    tx = Gtk::TextView.new
    # append it
    nb.append_page(tx,Gtk::Label.new(label))
end

Gtk.init
window = Gtk::Window.new
window.set_default_size(800,600)
window.signal_connect("destroy") {
    Gtk.main_quit
}

container   = Gtk::VBox.new
notebook    = Gtk::Notebook.new
button      = Gtk::Button.new("New")

# when I push the button, I want a new page to be added
button.signal_connect("clicked") {
    create_page(notebook)
}

container.pack_start(button,false,false,0)
create_page(notebook)
container.pack_start(notebook,true,true,0)
window.add(container)

window.show_all
Gtk.main

基本的には、ボタンとノートブック ウィジェットを含むウィンドウです。ボタンを押したときにノートブック ウィジェットに新しいページ/タブを追加できるようにしたい。しかし、何も起こりません。手動で行うべき何らかの再描画はありますか? ノートブック ウィジェットを誤用していませんか? 実行時にタブを追加するにはどうすればよいですか?

4

1 に答える 1

8

これを置き換えることにより:


button.signal_connect("clicked") {
    create_page(notebook)
}

これとともに:


button.signal_connect("clicked") {
    create_page(notebook)
    notebook.show_all
}

新しく追加されたタブ/ページが表示されます。

于 2009-03-23T17:03:33.067 に答える