events - Inputting double digit numbers from keyboard on Tkinter, Python -
so i'm using following enable single digit numbers move numbered tiles on game board. however, can't use same method input double digit numbers. have idea, how make tkinter wait me input several digits 1 number?
def key(event): if event.char.isdigit(): j, row in enumerate(board): i, char in enumerate(row): if char.get() == event.char: play(i,j) return root.bind('<key>', key)
as mention in previous question - can put keys on list, wait moment , check if there 2 or more chars.
import tkinter tk ''' catch 2 (or more) keys pressed in short time , tread 1 text ''' ''' http://pastebin.com/whqkcjkw ''' # --- functions --- # keys buffer keybuf = [] def test_after(): # check if buffer not empty if keybuf: # keys in buffer 1 text text = ''.join(keybuf) # clear buffer keybuf.clear() # run function here print('after:', text) def get_key(event): # save key in buffer keybuf.append(event.char) # check buffer after 500ms (0.5s) root.after(500, test_after) # --- main --- root = tk.tk() root.bind('<key>', get_key) root.mainloop()
Comments
Post a Comment