最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解python tkinter教程-事件綁定

 更新時間:2019年03月28日 10:48:17   作者:wangguizer  
這篇文章主要介紹了python tkinter事件綁定,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一個Tkinter主要跑在mainloop進程里。Events可能來自多個地方,比如按鍵,鼠標,或是系統(tǒng)事件。

Tkinter提供了豐富的方法來處理這些事件。對于每一個控件Widget,你都可以為其綁定方法function。

widget.bind(event,handler)

如果相應(yīng)的event發(fā)生了,就會調(diào)用handler處理事件。舉個例子:

捕獲鼠標點擊事件:

from Tkinter import *

root = Tk()
def callback(event):
  print "clicked at", event.x, event.y
frame = Frame(root, width=100, height=100)
frame.bind("<Button-1>", callback)
frame.pack()

root.mainloop()

在這里,我們使用frame的bind方法將一個callback方法綁定到一個事件,也就是點擊鼠標左鍵,每點擊一次,控制臺打印出當前點擊的坐標x,y。

鍵盤事件被發(fā)送到當前擁有焦點的widget,你可以用focus_set方法來設(shè)置widget們的焦點:

捕獲鍵盤事件:

from Tkinter import *

root = Tk()

def key(event):
  print "pressed", repr(event.char)

def callback(event):
  print "clicked at", event.x, event.y

frame = Frame(root, width=100, height=100)
frame.bind("<Key>", key)
frame.bind("<Button-1>", callback)
frame.pack()

root.mainloop()

運行這個程序,你會發(fā)現(xiàn),只有在當前窗口獲取焦點的情況下,你按鍵盤鍵它才會捕獲到并打印。

事件

事件用字符串定義,有一個特殊的語法規(guī)則:

<modifier-type-detail>

type字段是最重要的,它指出了事件的種類,可以指定為Button,Key或者Enter,Configure等等。modifier和detail字段可以提供一些附加信息,在大多數(shù)情況下可以不指定。還有很多方法可以簡化事件字符串,比如:為了匹配一個鍵盤鍵,你可以省略尖角括號,直接用 鍵 即可。除非它是空格 , 或本身就是尖括號。

讓我們來看看最常用的事件格式:

事件格式:

<Button-1>

一個鼠標點擊事件。1代表左鍵,2代表中鍵,3代表右鍵。當你在一個widget上點擊鼠標按鍵,tkinter會自動捕獲并觸發(fā)event,注意,當按鍵被抬起時才會執(zhí)行handler。鼠標的位置(相對于widge)x,y會被發(fā)往event對象傳入handler。你也可以這樣:,<1>,它們是等價的。我比較喜歡這種方式。

<B1-Motion>

鼠標拖動事件。1代表按下左鍵拖動,2代表中鍵,3代表右鍵。同樣的,鼠標的x,y會以event對象方式被送往handler。

<ButtonRelease-1>

鼠標按下之后釋放

<Double-Button-1>

雙擊鼠標

<Enter>

注意,這里是鼠標指針進入到widget里,并不是代表按下鍵盤上的Enter鍵。

<Leave>

和上面的進入對應(yīng),鼠標離開widget。

<FocusIn> <FocusOut>

<Return> <Cancel> <BackSpace> <Tab> <Shift_L> <Control_L>
<Alt_L> <Home> <Left> <Up> <Right> <Down> <Delete> <F1> <F2>

這些按鍵都和鍵盤上的一一對應(yīng)。

<Key>

隨便一個按鍵,鍵值會以char的格式放入event對象。

a b c ... 1 2 ...

對應(yīng)鍵盤上的按鍵

<Configure>

這個關(guān)鍵了,如果widget的大小改變了,或者是位置,新的大?。╳idth和height)會打包到event發(fā)往handler。

事件對象

事件對象是獨立的python實例,有很多屬性。

對象屬性:

  1. widget  產(chǎn)生event的實例,不是名字,所有對象擁有
  2. x,y     鼠標位置,單位:像素
  3. x_root,y_root       鼠標相對于屏幕左上角的位置,像素
  4. char        僅鍵盤事件,string
  5. num     按鈕num,僅鼠標事件
  6. width,height        widget新大小
  7. type        事件類型

 實例綁定和類綁定

上面我們用的綁定方法是綁定到一個實例對象上,這就意味著,如果新建一個實例,它是沒有綁定事件的。
實際上,tkinter允許你將事件綁定到類上,甚至是綁定到程序本身。你可以創(chuàng)建四個層面的綁定:

  1. 綁定到widget instance 使用bind方法
  2. 綁定到widget的toplevel windows,頂層窗口,也是用bind
  3. 綁定到widget class,使用bind_class

比如,你可以使用bind_all來創(chuàng)建一個F1鍵的綁定,這樣你可以在任何地方打開幫助。

以上所述是小編給大家介紹的python tkinter事件綁定詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Pycharm漢化兩種方法(pycharm改為中文版)

    Pycharm漢化兩種方法(pycharm改為中文版)

    PyCharm是一款流行的Python開發(fā)環(huán)境,提供了豐富的功能和工具,使得Python的開發(fā)和調(diào)試變得更加方便和高效,下面這篇文章主要給大家介紹了Pycharm漢化的兩種方法,所謂漢化就是將pycharm改為中文版,需要的朋友可以參考下
    2023-06-06
  • Python3網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)之極驗滑動驗證碼的識別

    Python3網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)之極驗滑動驗證碼的識別

    本節(jié)我們的目標是用程序來識別并通過極驗驗證碼的驗證,其步驟有分析識別思路、識別缺口位置、生成滑塊拖動路徑,最后模擬實現(xiàn)滑塊拼合通過驗證。需要的朋友可以參考下
    2019-08-08
  • Python實現(xiàn)控制手機電腦拍照并自動發(fā)送郵箱

    Python實現(xiàn)控制手機電腦拍照并自動發(fā)送郵箱

    這篇文章主要介紹了如何實現(xiàn)利用Python控制手機電腦拍照并自動發(fā)送郵箱,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-02-02
  • windows下Python實現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法

    windows下Python實現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法

    這篇文章主要介紹了windows下Python實現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法,結(jié)合實例形式較為詳細的分析了Python實現(xiàn)將pdf轉(zhuǎn)換為png格式的相關(guān)模塊、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2017-07-07
  • Python運算符的應(yīng)用超全面詳細教程

    Python運算符的應(yīng)用超全面詳細教程

    Python運算符是為了實現(xiàn)數(shù)值或字符運算的特殊符號。Python運算符可以分為算術(shù)運算符、邏輯運算符、賦值運算符、成員運算符、身份運算符、比較運算符、三目運算符等。接下來,我們就開始來學(xué)習(xí)這一堆符號吧
    2022-07-07
  • Python自動化測試之異常處理機制實例詳解

    Python自動化測試之異常處理機制實例詳解

    為了保持自動化測試用例的健壯性,異常的捕獲及處理,日志的記錄對掌握自動化測試執(zhí)行情況尤為重要,下面這篇文章主要給大家介紹了關(guān)于Python自動化測試之異常處理機制的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • python數(shù)據(jù)挖掘Apriori算法實現(xiàn)關(guān)聯(lián)分析

    python數(shù)據(jù)挖掘Apriori算法實現(xiàn)關(guān)聯(lián)分析

    這篇文章主要為大家介紹了python數(shù)據(jù)挖掘Apriori算法實現(xiàn)關(guān)聯(lián)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python中學(xué)習(xí)K-Means和圖片壓縮

    python中學(xué)習(xí)K-Means和圖片壓縮

    大家在python中會遇到關(guān)于K-Means和圖片壓縮的問題,我先通過本次文章學(xué)習(xí)一下基本原理吧。
    2017-11-11
  • python實現(xiàn)計算圖形面積

    python實現(xiàn)計算圖形面積

    這篇文章主要為大家詳細介紹了python實現(xiàn)計算圖形面積,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • 安裝Qbot并且用vscode進行配置的詳細步驟

    安裝Qbot并且用vscode進行配置的詳細步驟

    文章介紹了如何在Python 3.8環(huán)境下使用conda創(chuàng)建虛擬環(huán)境并安裝Qbot項目,本文分步驟結(jié)合圖文給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-01-01

最新評論

河津市| 蒙自县| 澄迈县| 沙雅县| 团风县| 长葛市| 岑巩县| 桂林市| 出国| 卢湾区| 威宁| 龙南县| 建始县| 罗城| 灵石县| 墨脱县| 龙州县| 扶绥县| 大石桥市| 固安县| 晋州市| 鸡东县| 昌江| 余江县| 梧州市| 永州市| 瓦房店市| 樟树市| 卫辉市| 盐边县| 沽源县| 神池县| 泸州市| 辽源市| 五原县| 海门市| 邢台市| 五华县| 彭泽县| 阿拉善盟| 靖边县|