亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[譯][Tkinter 教程15] event 事件綁定

zhkai / 3042人閱讀

摘要:已獲原作者授權(quán)原系列地址簡介一個應(yīng)用生命周期中的大部分時間都處在一個消息循環(huán)中它等待事件的發(fā)生事件可能是按鍵按下鼠標(biāo)點擊鼠標(biāo)移動等提供了用以處理相關(guān)事件的機(jī)制處理函數(shù)可以被綁定給各個控件的各種事件如果相關(guān)事件發(fā)生函數(shù)會被觸發(fā)事件對象會傳遞給

已獲原作者授權(quán). 原系列地址: Python Tkinter
簡介

一個 Tkinter 應(yīng)用生命周期中的大部分時間都處在一個消息循環(huán) (event loop) 中. 它等待事件的發(fā)生: 事件可能是 按鍵按下, 鼠標(biāo)點擊, 鼠標(biāo)移動 等.
Tkinter 提供了用以處理相關(guān)事件的機(jī)制. 處理函數(shù)可以被綁定給各個控件的各種事件.
widget.bind(event, handler)
如果相關(guān)事件發(fā)生, handler 函數(shù)會被觸發(fā), 事件對象 event 會傳遞給 handler 函數(shù).

#!/usr/bin/python3
# write tkinter as Tkinter to be Python 2.x compatible
from tkinter import *
def hello(event):
    print("Single Click, Button-l") 
def quit(event):                           
    print("Double Click, so let"s stop") 
    import sys; sys.exit() 

widget = Button(None, text="Mouse Clicks")
widget.pack()
widget.bind("Button-1", hello)
widget.bind("Double-1", quit) 
widget.mainloop()

讓我們再寫一個例子, 用以處理上面提到的鼠標(biāo)在控件內(nèi)移動的事件:

from tkinter import *

def motion(event):
  print("Mouse position: (%s %s)" % (event.x, event.y))
  return

master = Tk()
whatever_you_do = "Whatever you do will be insignificant, but it is very important that you do 
it.
(Mahatma Gandhi)"
msg = Message(master, text = whatever_you_do)
msg.config(bg="lightgreen", font=("times", 24, "italic"))
msg.bind("Motion",motion)
msg.pack()
mainloop()
事件

Tkinter 使用所謂的 事件隊列 (event sequences) 暴露接口以綁定 handler 到相關(guān)事件. 事件以字符串的形式給出:

modifier-type-detail

type 字段是一個事件的關(guān)鍵字段. modiferdetail 字段則不是必要字段, 很多情況下這兩個字段都不會被賦值. 這兩個字段用以提供 type 所代表的事件的附加信息. type 字段描述事件種類, 比如 鼠標(biāo)點擊, 鍵位按下, 控件獲得焦點 等.

Event Description
Button 某個鼠標(biāo)按鍵在控件上被點擊. detail 指定了哪一個按鍵被點擊了, 比如, 鼠標(biāo)左鍵點擊為 Button-1, 鼠標(biāo)中鍵點擊為 Button-2, 鼠標(biāo)右鍵點擊為 Button-3, 向上滾動滑輪為 Button-4, 向下滾動滑輪為 Button-5. 如果在控件上按下鼠標(biāo)的某個鍵并保持按下, Tkinter 將"抓住"該事件. 之后的鼠標(biāo)事件, 比如 鼠標(biāo)移動 或 鼠標(biāo)按鍵釋放 事件, 會被自動發(fā)送給該控件處理, 即使鼠標(biāo)移動出該控件時依然如此. 鼠標(biāo)相對當(dāng)前控件的位置會被存儲在 event 對象中的 x 和 y 字段中傳遞給回調(diào)函數(shù).
Motion 鼠標(biāo)在某個按鍵被按下時的移動事件. 鼠標(biāo)左鍵點擊為 B1-Motion, 鼠標(biāo)中鍵點擊為 B2-Motion, 鼠標(biāo)右鍵點擊為 B3-Motion. 鼠標(biāo)相對當(dāng)前控件的位置會被存儲在 event 對象中的 x 和 y 字段中傳遞給回調(diào)函數(shù).
ButtonRelease 按鈕點擊釋放事件. 鼠標(biāo)左鍵點擊為 ButtonRelease-1, 鼠標(biāo)中鍵點擊為 ButtonRelease-2, 鼠標(biāo)右鍵點擊為 ButtonRelease-3. 鼠標(biāo)相對當(dāng)前控件的位置會被存儲在 event 對象中的 x 和 y 字段中傳遞給回調(diào)函數(shù).
Double-Button 鼠標(biāo)雙擊事件. 鼠標(biāo)左鍵點擊為 Double-Button-1, 鼠標(biāo)中鍵點擊為 Double-Button-2, 鼠標(biāo)右鍵點擊為 Double-Button-3. Double 和 Triple 都可以被用作前綴. 注意: 如果同時綁定單擊事件 (Button-1) 和雙擊事件 (Double-Button-1), 則兩個回調(diào)都會被調(diào)用.
Enter 鼠標(biāo)移入控件事件. 注意: 這個事件不是 Enter 鍵按下事件, Enter 按下事件是 Return.
Leave 鼠標(biāo)移出控件事件.
FocusIn 控件或控件的子空間獲得鍵盤焦點.
FocusOut 控件丟失鍵盤焦點 (焦點移動到另一個控件).
Return Enter 點擊事件. 鍵盤上的所有鍵位都可以被綁定. 特殊鍵位名稱包括 Cancel, BackSpace, Tab, Return (Enter), Shift_L (任意 Shift), Control_L (任意 Control), Alt_L (任意 Alt), Pause, Caps_Lock, Escape, Prior (Page Up), Next (Page Down), End, Home, Left, Up, Right, Down, Print, Insert, Delete, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Num_Lock, and Scroll_Lock
Key 鍵盤按鍵點擊事件. 鍵值被存儲在 event 對象中傳遞. (特殊鍵位會傳遞空鍵值).
a "a" 鍵被點擊. 其他字符也可以如此定義. 特殊情況包括 空格 (space) 和 小于號 (less). 注意 "1" 是綁定鍵盤鍵位, 而 1 則是按鈕綁定.
Shift-Up 在 shift 被按下時點擊 up 鍵. 同樣的, 也有 Alt-Up, Control-Up 事件.
Configure 控件大小改變事件. 新的控件大小會存儲在 event 對象中的 width 和 height 屬性傳遞. 有些平臺上該事件也可能代表控件位置改變.

全系列:
[譯][Tkinter 教程01] 入門: Label 控件
[譯][Tkinter 教程02] Message 控件
[譯][Tkinter 教程03] Button 控件
[譯][Tkinter 教程04] Variable 類
[譯][Tinkter 教程05] Radiobutton 控件
[譯][Tkinter 教程06] Checkbox 控件
[譯][Tkinter 教程07] Entry 控件
[譯][Tkinter 教程08] Canvas 圖形繪制
[譯][Tkinter 教程09] Scale 控件
[譯][Tkinter 教程10] Text 控件
[譯][Tkinter 教程11] 對話框和消息框
[譯][Tkinter 教程12] 布局管理 (Pack Place Grid)
[譯][Tkinter 教程13] Mastermind 游戲
[譯][Tkinter 教程14] menu 菜單
[譯][Tkinter 教程15] event 事件綁定
譯者水平有限, 如有疏漏, 歡迎指正.
已獲得原作者授權(quán). 原文地址: Events and Binds

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/41504.html

相關(guān)文章

  • [][Tkinter 教程04] Variable 類

    摘要:已獲原作者授權(quán)原系列地址類有些控件比如控件控件等可以通過傳入特定參數(shù)直接和一個程序變量綁定這些參數(shù)包括這種綁定是雙向的如果該變量發(fā)生改變與該變量綁定的控件也會隨之更新這些控制變量和一般的變量一樣都是用來保存某個值的但一般的變量不能被傳遞給或 已獲原作者授權(quán). 原系列地址: Python Tkinter Variable 類 有些控件 (比如 Entry 控件, Radiobutton...

    zilu 評論0 收藏0
  • [][Tkinter 教程03] Button 控件

    摘要:已獲原作者授權(quán)原系列地址簡介控件是一種標(biāo)準(zhǔn)控件用來展現(xiàn)不同樣式的按鈕控件被用以和用戶交互比如按鈕被鼠標(biāo)點擊后某種操作被啟動和控件類似按鈕可以展示圖片或者文字不同的是控件可以指定字體控件只能使用單一的字體上的文字可以多行顯示可以將一個函數(shù)或方 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡介 Button 控件是一種標(biāo)準(zhǔn) Tkinter 控件, 用來展現(xiàn)不同樣式的按鈕...

    googollee 評論0 收藏0
  • [][Tkinter 教程01] 入門: Label 控件

    摘要:已獲原作者授權(quán)原系列地址下面我們將以中最簡單的控件控件開始這個系列的教程在中控件用以顯示文字和圖片通常被用來展示信息而非與用戶交互譯者注也可以綁定點擊等事件只是通常不這么用程序員的教程怎么能少了我們尊重這個傳統(tǒng)但我們不說讓我們來秀出吧下面的 已獲原作者授權(quán). 原系列地址: Python Tkinter Hello Tkinter Label 下面我們將以 Tkinter 中最簡單的控...

    Sike 評論0 收藏0
  • [][Tinkter 教程05] Radiobutton 控件

    摘要:已獲原作者授權(quán)原系列地址單選按鈕是一種可在多個預(yù)先定義的選項中選擇出一項的控件單選按鈕可顯示文字或圖片顯示文字時只能使用預(yù)設(shè)字體該控件可以綁定一個函數(shù)或方法當(dāng)單選按鈕被選擇時該函數(shù)或方法將被調(diào)用單選按鈕這個名字來源于收音機(jī)上的調(diào)頻按鈕這些按 已獲原作者授權(quán). 原系列地址: Python Tkinter Radio Buttons 單選按鈕是一種可在多個預(yù)先定義的選項中選擇出一項的 T...

    shusen 評論0 收藏0
  • [][Tkinter 教程07] Entry 控件

    摘要:已獲原作者授權(quán)原系列地址簡介是用來接收字符串等輸入的控件該控件允許用戶輸入一行文字如果用戶輸入的文字長度長于控件的寬度時文字會向后滾動這種情況下所輸入的字符串無法全部顯示點擊箭頭符號可以將不可見的文字部分移入可見區(qū)域如果你想要輸入多行文本就 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡介 Entry 是 Tkinter 用來接收字符串等輸入的控件. 該控件允許用戶...

    levy9527 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<