Tkinter教程之Event篇(2)

來源:互聯網
上載者:User

標籤:blog   http   io   os   使用   ar   art   sp   log   

本文轉載自:http://blog.csdn.net/jcodeer/article/details/1823548

‘‘‘Tkinter教程之Event篇(2)‘‘‘
‘‘‘5.測試離開(Leave)事件‘‘‘
# -*- coding: cp936 -*-
# leave:滑鼠離開時產生此事件
from Tkinter import *
root = Tk()
def printCoords(event):
    print event.x,event.y
# 建立第一個Button,並將它與Enter事件綁定
bt1 = Button(root,text = ‘leftmost button‘)
bt1.bind(‘<Leave>‘,printCoords)

bt1.grid()

root.mainloop()
# 分別測試Leave事件,只是在離開組件是會產生此事件。
‘‘‘6.響應特殊鍵(Special Key)‘‘‘
# -*- coding: cp936 -*-
# 鍵盤特殊鍵事件
from Tkinter import *
root = Tk()
def printCoords(event):
    print ‘event.char = ‘,event.char
    print ‘event.keycode = ‘,event.keycode
# 建立第一個Button,並將它與BackSpace鍵綁定
bt1 = Button(root,text = ‘Press BackSpace‘)
bt1.bind(‘<BackSpace>‘,printCoords)

# 建立二個Button,並將它與斷行符號鍵綁定
bt2 = Button(root,text = ‘Press Enter‘)
bt2.bind(‘<Return>‘,printCoords)

# 建立第三個Button,並將它與F5鍵綁定
bt3 = Button(root,text = ‘F5‘)
bt3.bind(‘<F5>‘,printCoords)

# 建立第4個Button,並將它與左Shift鍵綁定,與參考上說法一致
bt4 = Button(root,text = ‘Left Shift‘)
bt4.bind(‘<Shift_L>‘,printCoords)

# 建立第5個Button,並將它與右Shift鍵綁定,與參考上說法一致
bt5 = Button(root,text = ‘Right Shift‘)
bt5.bind(‘<Shift_R>‘,printCoords)


# 將焦點設定到第1個Button上
bt1.focus_set()
bt1.grid()
bt2.grid()
bt3.grid()
bt4.grid()
bt5.grid()

root.mainloop()
# 各個組件間焦點的切換可以使用TAB鍵。
# 特殊鍵    Cancel/Break/BackSpace/Tab/Return/Sift_L/Shift_R/Control_L/Control_R/Alt_L/Alt_R/Pause
#        Caps_Loack/Escape/Prior(Page Up)/Next(Page Down)/End/Home/Left/Up/Right/Down/Print/Insert/Delete/
#        F1-12/Num_Lock/Scroll_Lock
# 這些鍵的char是不可列印的,可以使用event.keycode查看。
‘‘‘7.響應所有的按鍵(Key)事件‘‘‘
# -*- coding: cp936 -*-
# Key:處理所有的鍵盤事件
from Tkinter import *
root = Tk()
def printCoords(event):
    print ‘event.char = ‘,event.char
    print ‘event.keycode = ‘,event.keycode
# 建立第一個Button,並將它與Key鍵綁定
bt1 = Button(root,text = ‘Press BackSpace‘)
bt1.bind(‘<Key>‘,printCoords)

# 將焦點設定到第1個Button上
bt1.focus_set()
bt1.grid()

root.mainloop()
# 處理所有的按鍵事件,如果是上例的特殊鍵,event.char返回為空白;其它情況下為這個鍵的值。
# 如果輸入大寫字母(即上檔索引值),按下Shift鍵時就會有Key的事件觸發。即回將用兩次:一次為Shift本身,另一次為Shift+ Kye的實際索引值。
‘‘‘8.只處理指定的按鍵訊息‘‘‘
# -*- coding: cp936 -*-
# a:只處理指定的按鍵訊息
from Tkinter import *
root = Tk()
def printCoords(event):
    print ‘event.char = ‘,event.char
    print ‘event.keycode = ‘,event.keycode
# 建立第一個Button,並將它與鍵‘a‘綁定
bt1 = Button(root,text = ‘Press BackSpace‘)
bt1.bind(‘a‘,printCoords)

# 建立二個Button,並將它與按下spacebar是觸發事件
bt2 = Button(root,text = ‘Press spacebar‘)
bt2.bind(‘<space>‘,printCoords)

# 建立第三個Button,並將它與‘<‘鍵綁定
bt3 = Button(root,text = ‘less than key‘)
bt3.bind(‘<less>‘,printCoords)

# 將焦點設定到第1個Button上
bt1.focus_set()

bt1.grid()
bt2.grid()
bt3.grid()

root.mainloop()
# 一般的按鍵直接使用就可以了,這樣書寫‘key‘,不是‘<key>‘;
# 但有兩個需要特別注意:空格與小於的處理,使用方式為‘<space>和<less>
‘‘‘9.使用按鍵組合響應事件‘‘‘
# -*- coding: cp936 -*-
# 按鍵組合(Control/Alt/Shift)
from Tkinter import *
root = Tk()
def printCoords(event):
    print ‘event.char = ‘,event.char
    print ‘event.keycode = ‘,event.keycode
# 建立第一個Button,並將它與鍵Shift - Up綁定
bt1 = Button(root,text = ‘Press Shift - Up‘)
bt1.bind(‘<Shift-Up>‘,printCoords)

# 建立二個Button,並將它與按下Control-Alt-a時觸發事件
bt2 = Button(root,text = ‘Control-Alt-a‘)
bt2.bind(‘<Control-Alt-a>‘,printCoords)

# 下面的按鍵處理將無法接受
# 建立第三個Button,並將它與‘Control-Alt‘鍵綁定
# bt3 = Button(root,text = ‘Control-Alt‘)
# bt3.bind(‘<Control-Alt>‘,printCoords)


# 將焦點設定到第1個Button上
bt1.focus_set()
bt1.grid()
bt2.grid()

root.mainloop()
# 使用Control/Alt/Shift與其它按鍵組合,但不能單獨的使用Control/Alt組合。
‘‘‘10.改變組件大小事件‘‘‘
# -*- coding: cp936 -*-
# configure:改變組件大小事件
from Tkinter import *
root = Tk()
def printSize(event):
    print (event.width,event.height)
root.bind(‘<Configure>‘,printSize)

root.mainloop()
# 當組件的大小改變時觸發。evnet.width/height分別返回改變後的寬度和高度。

Tkinter教程之Event篇(2)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.