1

Glade 3 (gtk) と ruby​​ を使用して GUI を作成しようとしていますが、文字列のリストなどを使用して実際にコンボ ボックスを動的に設定する方法がわかりません。Glade で GUI を視覚的に作成した後、xml .glade ファイルを取得し、ruby-glade-create-template を使用して .rb ファイルを生成しましたが、ここからどこに行けばよいかわかりません。Glade 3 で Ruby を使用する方法に関するガイドが見つかりません。助けていただければ幸いです。ありがとう!

4

3 に答える 3

0

visualruby を使用した場合、次のようなコンボボックスを作成できます。

combo = VR::SimpleComboBoxEntry("Selected", "Option1", "option2", "Option3")
@builder["vbox1"].add(combo)

何らかの理由で、Glade は単純なコンボボックスでは機能しません。単純なテキスト タイプを選択すると、xml ファイルに正しく保存されません。したがって、必要なことは、1 つのセルを含む VBox または HBox を、コンボボックスを配置したい空き地フォームに配置し、上記のボックスを VBox に追加することです。上記の例では、@builder は Gtk::Builder のインスタンスです。

より多くの例があります:

http://visualruby.net

于 2012-03-25T05:53:02.063 に答える
0

.rb ファイルを生成する必要があるのはなぜですか? コード生成は Frowned upon™ です。それでは、 Gtk::Builderインスタンスを使用してグレード ファイルをロードしますか? Builder オブジェクトを取得したら、get_objectメソッドを呼び出して特定のウィジェットを取得します。

これはグレード 3に関する非常に優れたチュートリアルです。Rubyはカバーしていませんが、Python は十分に近いものです。少し古いので、グレード 3 の最近のバージョンを使用している場合は、そこに記載されているいくつかのバグが修正されています。

于 2009-08-01T03:31:52.327 に答える
0
def initialize_combobox_script_select()
    #get combobox widget from glade file
    @combobox_script_select = @glade.get_widget("combobox_script_select")
    @combobox_script_select.set_active(0) #this makes <select a script> the default element in the combobox
    @script_list = ["helloworld", "byeworld"]
    @script_list.each{|script| @combobox_script_select.append_text("#{script}")} #populate the combobox with the list of scripts
end

これは、スクリプト名で埋めていたコンボボックスを初期化するためのコード例です。

于 2009-09-07T00:32:41.497 に答える