Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
760
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.47 KB | None | 0 0
  1. from tkinter import *
  2. from tkinter import filedialog
  3. root = Tk()
  4. root.title("RSVP")
  5. temp = 0
  6. after_id = ''
  7. wps = 1
  8. def file_reader(file_name):
  9.     global broused_file
  10.     with open(file_name, 'r') as f:
  11.         words = f.read().split()
  12.         broused_file[file_name] = [len(words), words, 0]
  13.    
  14.  
  15. def tick():
  16.     global temp, after_id, cur_name, broused_file, wps
  17.     after_id = root.after(int(1000 / wps), tick)
  18.     if broused_file[cur_name][2] < broused_file[cur_name][0]:
  19.         label1.configure(text = broused_file[cur_name][1][broused_file[cur_name][2]])
  20.         broused_file[cur_name][2] += 1
  21.         temp += 1
  22.     else:
  23.         label1.configure(text = "book is end, sorry((")
  24.    
  25. def start():
  26.     file_name = filedialog.askopenfilename()
  27.     global cur_name, broused_file
  28.     cur_name = file_name
  29.     if file_name not in broused_file:
  30.         file_reader(file_name)
  31.     tick()
  32.  
  33. def pause(event):
  34.     global stop_flag, after_id
  35.     stop_flag = not stop_flag
  36.     if stop_flag:
  37.         root.after_cancel(after_id)
  38.     else:
  39.         tick()
  40.  
  41. def frame_left(event):
  42.     global stop_flag, cur_name, broused_file
  43.     if stop_flag:
  44.         if broused_file[cur_name][2] > 0:
  45.             broused_file[cur_name][2] -= 1
  46.             label1.configure(text = broused_file[cur_name][1][broused_file[cur_name][2]])
  47.  
  48. def frame_right(event):
  49.     global stop_flag, cur_name, broused_file
  50.     if stop_flag:
  51.         if broused_file[cur_name][2] < broused_file[cur_name][0] - 1:
  52.             broused_file[cur_name][2] += 1
  53.             label1.configure(text = broused_file[cur_name][1][broused_file[cur_name][2]])
  54.            
  55. def speed_up(event):
  56.     global wps
  57.     wps += 10
  58.     label2.configure(text = "wps = " + str(wps))
  59. def speed_down(event):
  60.     global wps
  61.     if wps >=11:
  62.         wps -= 10
  63.         label2.configure(text = "wps = " + str(wps))
  64. cur_name = None
  65. broused_file = {}
  66. stop_flag = False
  67. label1 = Label(root, width = 20,  font=("Ubuntu", 20), text = "not open book yet" )
  68. label1.grid(row = 1, columnspan = 2)
  69. label2 = Label(root, width = 10, text = "wps = " + str(wps))
  70. label2.grid(row = 0, column = 1)
  71. btn1 = Button(root, text= "open_book", command = start)
  72. btn1.grid(row = 0, column = 0)
  73. root.bind('<space>', lambda event: pause(""))
  74. root.bind("<Left>", lambda event: frame_left(""))
  75. root.bind("<Right>", lambda event: frame_right(""))
  76. root.bind("<Up>", lambda event: speed_up(""))
  77. root.bind("<Down>", lambda event: speed_down(""))
  78. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement