9
9
from reactivex .subject import Subject
10
10
11
11
12
- def main ():
12
+ def main () -> None :
13
13
root = Tk ()
14
14
root .title ("Rx for Python rocks" )
15
15
scheduler = TkinterScheduler (root )
@@ -21,29 +21,26 @@ def main():
21
21
22
22
text = "TIME FLIES LIKE AN ARROW"
23
23
24
- def on_next (info : Tuple [tkinter .Label , "Event[Frame]" , int ]):
24
+ def on_next (info : Tuple [tkinter .Label , "Event[Frame]" , int ]) -> None :
25
25
label , ev , i = info
26
26
label .place (x = ev .x + i * 12 + 15 , y = ev .y )
27
27
28
28
def label2stream (
29
29
label : tkinter .Label , index : int
30
30
) -> Observable [Tuple [tkinter .Label , "Event[Frame]" , int ]]:
31
- label .config (dict (borderwidth = 0 , padx = 0 , pady = 0 ))
32
31
33
32
return mousemoves .pipe (
34
33
ops .map (lambda ev : (label , ev , index )),
35
34
ops .delay (index * 0.1 ),
36
35
)
37
36
38
37
def char2label (char : str ) -> Label :
39
- return Label (frame , text = char )
38
+ return Label (frame , text = char , borderwidth = 0 , padx = 0 , pady = 0 )
40
39
41
- xs = reactivex .of (text ).pipe (
40
+ reactivex .from_ (text ).pipe (
42
41
ops .map (char2label ),
43
42
ops .flat_map_indexed (label2stream ),
44
- )
45
-
46
- xs .subscribe (on_next , on_error = print , scheduler = scheduler )
43
+ ).subscribe (on_next , on_error = print , scheduler = scheduler )
47
44
48
45
frame .pack ()
49
46
root .mainloop ()
0 commit comments