質問

私はグレイド3(GTK)とGUIとルビーを作るしようとしていますが、実際には文字列のリストを言うと、動的にコンボボックスを移入する方法を見つけ出すことはできません。私は私が視覚的にGladeの中に私のGUIを作る、と私.RBファイルを生成するためのruby-空き地作成テンプレートを使用した後のxml .gladeファイルを取得するが、どこここから行くには考えています。私はグレード3とルビーを使用する方法のいずれかのガイドを見つけることができませんし、任意の助けいただければ幸いです。ありがとう!

役に立ちましたか?

解決 2

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

これは私がスクリプト名でいっぱいにするために使用することを、コンボボックスを初期化するためにいくつかのサンプルコードです。

他のヒント

なぜあなたは.RBファイルを生成する必要がありますか?コード生成は™ひんしゅくを買うされます。 だから、のGtk ::ビルダーので空き地ファイルをロードしますインスタンス?あなたはビルダーオブジェクトを持っていたら、 GET_OBJECT のメソッドを呼び出します特定のウィジェットを取得します。

ここでにかなり良いチュートリアルです3 に空き地、それはルビーをカバーしていませんが、Pythonは十分に近いです。そういくつかのバグは、あなたが空き地3の最新バージョンを使用している場合が固定されています言及少し時代遅れです。

あなたはvisualrubyを使用した場合、あなたはこのようなコンボボックスを作成することができます:

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

何らかの理由で、グレイドは、単純なコンボボックスでは動作しません。あなたは、単純なテキストの種類を選択すると、それはXMLファイルに正しく保存されません。だから、あなたは何をする必要があるかあなたはコンボボックスが行く、とのVBoxに上記のボックスを追加したいあなたの空き地フォームに1つのセルのある場所にVBoxまたはHBoxのです。上記の例では、@builderはのGtk ::ビルダーのインスタンスである。

でより多くの例があります。

http://visualruby.netする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top