Aby odpowiedzieć na twoje pytanie, tak, jest to introspekcja klatek.
Ale składnia chciałbym tworzyć zrobić to samo jest
with gui.vertical:
text = gui.label('hello!')
items = gui.selection(['one', 'two', 'three'])
@gui.button('click me!')
class button:
def on_click():
text.value = items.value
text.foreground = red
Tu chciałbym wdrożyć gui.button
jako dekorator, która zwraca instancję przycisku podane niektóre parametry i zdarzenia (choć wydaje mi się, że teraz button = gui.button('click me!', mybutton_onclick
jest również dobrze).
Zostawiłabym również gui.vertical
, ponieważ może być zaimplementowana bez introspekcji. Nie jestem pewien co do jego implementacji, ale może to wymagać ustawienia gui.direction = gui.VERTICAL
, aby gui.label()
i inne używały go do obliczania swoich współrzędnych.
Teraz, kiedy patrzę na to, myślę, że będę próbować składnię:
with gui.vertical:
text = gui.label('hello!')
items = gui.selection(['one', 'two', 'three'])
@gui.button('click me!')
def button():
text.value = items.value
foreground = red
(pomysł jest, że podobnie, jak etykieta jest wykonana z tekstem, przycisk jest wykonany z tekstem i funkcja)
Cudownie, dziękuję bardzo. – llimllib
Nie ma za co! był zabawny problem do rozwiązania, więc tx za pozowanie ;-). –
Umieściłem wpis na blogu o użyciu kodu, który mi dałeś, na wypadek gdybyś był zainteresowany: http://billmill.org/multi_line_lambdas.html – llimllib