Napi tetszik-kód

Egy példakód. Python+rx. Igen, még mindég reactive :-)


from rx.subjects import Subject
from rx.concurrency import TkinterScheduler

try:
    from tkinter import *
except ImportError:
    # In python 2 tkinter is capitalized
    from Tkinter import *


def main():
    root = Tk()
    root.title("Rx for Python rocks")
    scheduler = TkinterScheduler(root)

    mousemove = Subject()

    frame = Frame(root, width=600, height=600)

    def move(event):
        mousemove.on_next(event)
    frame.bind("<Motion>", move)

    text = 'TIME FLIES LIKE AN ARROW'
    labels = [Label(frame, text=c) for c in text]

    def handle_label(i, label):
        label.config(dict(borderwidth=0, padx=0, pady=0))
        def on_next(ev):
            label.place(x=ev.x + i*12 + 15, y=ev.y)
        mousemove.delay(i*100, scheduler=scheduler).subscribe(on_next)
        
    for i, label in enumerate(labels):
        handle_label(i, label)
        
    frame.pack()
    root.mainloop()

if __name__ == '__main__':
    main()