2009-08-18 3 views
0

Wie Sie aus dem Code sehen können, versuche ich einen Fortschrittsbalken anzuzeigen, der vom Ende des Textes bis zum rechten Rand des Anwendungsfensters geht. Wenn der Text eine feste Länge hat, funktioniert diese Lösung, aber es ändert nicht einmal die Länge des Textes im obigen Fragment: Es wird entweder zu wenig oder zu viel Platz für den Fortschrittsbalken sein.Wie kann ein Element die gesamte Breite, die übrig bleibt, einnehmen?

Gibt es eine Lösung für dieses Problem?

Ich habe versucht, das para-Element zu fragen, es ist Breite, aber es ist 0 ???

+1

Aww, von den Tags dachte ich, das würde über Dorthy sein. – amischiefr

Antwort

1

Wie I mentioned before, müssen Sie die Breite des Textblocks nach der Berechnung erhalten. Versuchen Sie dies:

Shoes.app do 
    flow do 
    file = "something with variable length" 
    @p = para "Loading #{file}: " 
    @prog = progress 
    start do 
     @prog.width = @prog.parent.width - @p.width 
    end 
    end 
    button 'Change text!' do 
    text = @p.text 
    @p.text = text + '1' 
    @prog.width = @prog.parent.width - @p.width  
    end 
end 
+0

Wie Sie gesagt haben: Sie haben mein Problem gelöst, indem Sie die andere Frage beantwortet haben. Vielen Dank. – Simon