Frage

Ich versuche, eine gui mit Glade 3 (GTK) und Rubin zu machen, aber kann nicht herausfinden, wie man tatsächlich eine Combo füllen Feld mit sage dynamisch eine Liste von Strings. Ich erhalte die xml-Datei .glade, nachdem ich meine visuell gui in Glade und Verwendung rubin Glade-create-Vorlage mache meine .rb-Datei zu erzeugen, aber keine Ahnung hat, wohin man von hier zu gehen. Ich kann keine Führungen finden, wie mit Glade 3 und jede mögliche Hilfe würde geschätzt verwenden Rubin. Dank!

War es hilfreich?

Lösung 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

Dies ist ein Beispielcode eine Combobox zu initialisieren, dass ich verwendet, um mit Skriptnamen zu füllen.

Andere Tipps

Warum brauchen Sie eine .rb-Datei zu erzeugen? Code-Generierung ist verpönt ™. Also laden Sie die Lichtung Datei mit einem Gtk :: Builder Beispiel? Sobald Sie den Builder-Objekt haben, rufen Sie die get_object Verfahren spezifische Widgets zu erhalten.

Hier ist ein ziemlich gutes Tutorial auf lichtung 3 , sie decken Rubin nicht aber python ist nahe genug. Es ist ein wenig vom so einige Bugs erwähnten dort werden behoben, wenn Sie eine aktuelle Version von Glade 3 verwenden.

Wenn Sie visualruby verwendet, können Sie eine Combobox wie folgt erstellen:

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

Aus irgendeinem Grund hat Glade nicht für einfache Comboboxen arbeiten. Wenn Sie den einfachen Texttyp auswählen, ist es nicht richtig in der XML-Datei speichern. Also, was Sie tun müssen, ist Platz einer VBox oder HBox mit 1 Zelle in der Lichtung Formular, in dem Sie die Combobox gehen wollen, und fügen Sie die oben genannte Box auf das VBox. In dem obigen Beispiel @builder ist eine Instanz von Gtk :: Builder.

Es gibt weitere Beispiele an:

http://visualruby.net

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top