Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from tkinter import filedialog
- root = Tk()
- root.title("RSVP")
- temp = 0
- after_id = ''
- wps = 1
- def file_reader(file_name):
- global broused_file
- with open(file_name, 'r') as f:
- words = f.read().split()
- broused_file[file_name] = [len(words), words, 0]
- def tick():
- global temp, after_id, cur_name, broused_file, wps
- after_id = root.after(int(1000 / wps), tick)
- if broused_file[cur_name][2] < broused_file[cur_name][0]:
- label1.configure(text = broused_file[cur_name][1][broused_file[cur_name][2]])
- broused_file[cur_name][2] += 1
- temp += 1
- else:
- label1.configure(text = "book is end, sorry((")
- def start():
- file_name = filedialog.askopenfilename()
- global cur_name, broused_file
- cur_name = file_name
- if file_name not in broused_file:
- file_reader(file_name)
- tick()
- def pause(event):
- global stop_flag, after_id
- stop_flag = not stop_flag
- if stop_flag:
- root.after_cancel(after_id)
- else:
- tick()
- def frame_left(event):
- global stop_flag, cur_name, broused_file
- if stop_flag:
- if broused_file[cur_name][2] > 0:
- broused_file[cur_name][2] -= 1
- label1.configure(text = broused_file[cur_name][1][broused_file[cur_name][2]])
- def frame_right(event):
- global stop_flag, cur_name, broused_file
- if stop_flag:
- if broused_file[cur_name][2] < broused_file[cur_name][0] - 1:
- broused_file[cur_name][2] += 1
- label1.configure(text = broused_file[cur_name][1][broused_file[cur_name][2]])
- def speed_up(event):
- global wps
- wps += 10
- label2.configure(text = "wps = " + str(wps))
- def speed_down(event):
- global wps
- if wps >=11:
- wps -= 10
- label2.configure(text = "wps = " + str(wps))
- cur_name = None
- broused_file = {}
- stop_flag = False
- label1 = Label(root, width = 20, font=("Ubuntu", 20), text = "not open book yet" )
- label1.grid(row = 1, columnspan = 2)
- label2 = Label(root, width = 10, text = "wps = " + str(wps))
- label2.grid(row = 0, column = 1)
- btn1 = Button(root, text= "open_book", command = start)
- btn1.grid(row = 0, column = 0)
- root.bind('<space>', lambda event: pause(""))
- root.bind("<Left>", lambda event: frame_left(""))
- root.bind("<Right>", lambda event: frame_right(""))
- root.bind("<Up>", lambda event: speed_up(""))
- root.bind("<Down>", lambda event: speed_down(""))
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement