顯示具有 keybord 標籤的文章。 顯示所有文章
顯示具有 keybord 標籤的文章。 顯示所有文章

2010年12月19日 星期日

功能鍵

from Tkinter import *

def displayHelp(event):
    print 'hlp', event.keysym
    
def sayKey(event):
    print 'say',event.keysym, event.char
    
def printWindow(event):
    print 'prt', event.keysym
    
def cursor(*args):
    print 'cursor'

def unbindThem(*args):
    print 'Gone...'
    root.unbind_all('<F1>')
    root.unbind_class('Entry', '<KeyPress>')
    root.unbind('<Alt_L>')
    root.unbind('<Control-Shift-Down>')

root = Tk()

frame = Frame(root, takefocus=1, highlightthickness=2)
text  = Entry(frame, width=10, takefocus=1, highlightthickness=2)

root.bind_all('<F1>', displayHelp)
text.bind_class('Entry', '<KeyPress>', lambda e: sayKey(e))
root.bind('<Alt_L>', printWindow)
frame.bind('<Control-Shift-Down>' , cursor)
text.bind('<Control-Shift-Up>', unbindThem)

text.pack()
frame.pack()
text.focus_set()
root.mainloop()

文字輸入 Entry

import Tkinter
root = Tkinter.Tk()
tv = Tkinter.StringVar()
Tkinter.Label(textvariable=tv).pack()

Tkinter.Entry(textvariable=tv).pack()

tv.set('')
Tkinter.Button(text="Exit", command=root.quit).pack()
Tkinter.mainloop()
print tv.get()

key released

from Tkinter import *

class KeyDemo( Frame ):
   def __init__( self ):
      Frame.__init__( self )
      self.pack( expand = YES, fill = BOTH )
      self.master.title( "Keystroke Events" )
      self.master.geometry( "350x50" )

      self.message1 = StringVar()
      self.line1 = Label( self, textvariable = self.message1 )
      self.message1.set( "Type any key or shift" )
      self.line1.pack()

      self.message2 = StringVar()
      self.line2 = Label( self, textvariable = self.message2 )
      self.message2.set( "" )
      self.line2.pack()

      self.master.bind( "<KeyRelease>", self.keyReleased )

   def keyReleased( self, event ):
      self.message1.set( "Key released: " + event.char )
      self.message2.set( "This key is not left shift" )
   
def main():
   KeyDemo().mainloop()

if __name__ == "__main__":
   main()

key pressed

from Tkinter import *

class KeyDemo( Frame ):
   def __init__( self ):
      Frame.__init__( self )
      self.pack( expand = YES, fill = BOTH )
      self.master.title( "Keystroke Events" )
      self.master.geometry( "350x50" )

      self.message1 = StringVar()
      self.line1 = Label( self, textvariable = self.message1 )
      self.message1.set( "Type any key or shift" )
      self.line1.pack()

      self.message2 = StringVar()
      self.line2 = Label( self, textvariable = self.message2 )
      self.message2.set( "" )
      self.line2.pack()

      self.master.bind( "<KeyPress>", self.keyPressed )

   def keyPressed( self, event ):
      self.message1.set( "Key pressed: " + event.char )
      self.message2.set( "This key is not left shift" )
   
def main():
   KeyDemo().mainloop()

if __name__ == "__main__":
   main()