2009-08-10 2 views

Antwort

2

Ich habe nicht herausgefunden, wie Sie den Text auf der vorhandenen Schaltfläche ändern. Ich vermute, dass es noch nicht unterstützt wird. Sie könnten eine neue Schaltfläche erstellen und die alte ersetzen. Leider, zumindest unter Windows, macht das Entfernen einer Schaltfläche alle Klickereignisse zunichte. Ich habe es nicht auf einer anderen Plattform versucht, aber vielleicht wird es funktionieren. Probieren Sie etwas wie folgt aus:

Shoes.app do 
    para 'This is some text.' 

    @btn = button 'a' do |btn| 
    alert 'Hello, World!' 
    end 

    para 'Blah blah blah' 

    button 'Change!' do |btn| 
    old = @btn 
    new_style = old.style.dup 
    txt = new_style[:text].next! 
    old.parent.before(old) do 
     @btn = button txt, new_style 
    end 
    old.remove #This messes up the click events on Windows. 
    end 

end 
0

Eine sehr alte Frage, aber es gibt eine Lösung. Sie haben Ihre Schuhfarbe nicht erwähnt, also verwende ich Grün. Green Shoes basiert auf GTK2, daher können Sie die Methoden von GTK2 verwenden, wenn Sie das GTK2-Objekt wie folgt extrahieren.

require 'green_shoes' 

Shoes.app do 
    @btn = button('old text ') {|btn|alert('Hello, World!')} 
    button('Change!') {|btn|@btn.real.set_label("new")} 
end