电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python GUI編程學習筆記之tkinter事件綁定操作詳解

瀏覽:5日期:2022-07-31 16:46:48

本文實例講述了Python GUI編程學習筆記之tkinter事件綁定操作。分享給大家供大家參考,具體如下:

相關內容: command bind protocol

首發時間:2018-03-04 19:26

command: command是控件中的一個參數,如果使得command=函數,那么點擊控件的時候將會觸發函數 能夠定義command的常見控件有: Button、Menu… 調用函數時,默認是沒有參數傳入的,如果要強制傳入參數,可以考慮使用lambda

from tkinter import *root=Tk()def prt(): print('hello')def func1(*args,**kwargs): print(*args,**kwargs)hello_btn=Button(root,text='hello',command=prt)#演示hello_btn.pack()args_btn=Button(root,text='獲知是否button事件默認有參數',command=func1)#獲知是否有參數,結果是沒有args_btn.pack()btn1=Button(root,text='傳輸參數',command=lambda:func1('running'))#強制傳輸參數btn1.pack()root.mainloop()bind: bind的用法:控件.bind(event, handler),其中event是tkinter已經定義好的的事件,handler是處理器,可以是一個處理函數,如果相關事件發生, handler 函數會被觸發, 事件對象 event 會傳遞給 handler 函數 基本所有控件都能bind 常見event有: 鼠標單擊事件:鼠標左鍵點擊為 <Button-1>, 鼠標中鍵點擊為 <Button-2>, 鼠標右鍵點擊為 <Button-3>, 向上滾動滑輪為 <Button-4>, 向下滾動滑輪為 <Button-5>. 鼠標雙擊事件.:鼠標左鍵點擊為 <Double-Button-1>, 鼠標中鍵點擊為 <Double-Button-2>, 鼠標右鍵點擊為 <Double-Button-3>. 鼠標釋放事件:鼠標左鍵點擊為 <ButtonRelease-1>, 鼠標中鍵點擊為 <ButtonRelease-2>, 鼠標右鍵點擊為 <ButtonRelease-3>. 鼠標相對當前控件的位置會被存儲在 event 對象中的 x 和 y 字段中傳遞給回調函數. 鼠標移入控件事件:<Enter> 獲得焦點事件:<FocusIn> 鼠標移出控件事件: <Leave> 失去焦點事件:<FocusOut> 鼠標按下移動事件:鼠標左鍵點擊為 <B1-Motion>, 鼠標中鍵點擊為 <B2-Motion>, 鼠標右鍵點擊為 <B3-Motion>. 鼠標相對當前控件的位置會被存儲在 event 對象中的 x 和 y 字段中傳遞給回調函數. 鍵盤按下事件:<Key>,event中的keysym ,keycode,char都可以獲取按下的鍵【其他想要獲取值的也可以先看看event中有什么】 鍵位綁定事件:<Return>回車鍵,<BackSpace>,<Escape>,<Left>,<Up>,<Right>,<Down>……. 控件大小改變事件:<Configure>,新的控件大小會存儲在 event 對象中的 width 和 height 屬性傳遞. 有些平臺上該事件也可能代表控件位置改變. Event中的屬性: widget:產生事件的控件 x, y:當前鼠標的位置 x_root, y_root:當前鼠標相對于屏幕左上角的位置,以像素為單位。 char:字符代碼(僅限鍵盤事件),作為字符串。 keysym:關鍵符號(僅限鍵盤事件)。 keycode:關鍵代碼(僅限鍵盤事件)。 num:按鈕號碼(僅限鼠標按鈕事件)。 width, height:小部件的新大小(以像素為單位)(僅限配置事件)。 type:事件類型。

from tkinter import *root=Tk()root.geometry('200x200')text=Text(root)text.pack()def func(event): print(event)def func_release(event): print('release')#單擊# text.bind('<Button-1>',func)# root.bind('<Button-1>',func)#雙擊# text.bind('<Double-Button-1>',func)# 鼠標釋放# text.bind('<ButtonRelease-1>',func_release)#鼠標移入# text.bind('<Enter>',func)#鼠標按住移動事件# text.bind('<B1-Motion>',func)#鍵盤按下事件# text.bind('<Key>',func)#鍵位綁定事件# def func3(event):# print('你按下了回車!')# text.bind('<Return>',func3)#實現的一個拖拽功能def func4(event): # print(event) x=str(event.x_root) y=str(event.y_root) root.geometry('200x200+'+x+'+'+y)text.bind('<B1-Motion>',func4)root.mainloop()

補充:如果想要傳參,可以使用lambda:

text.bind('<Button-1>',lambda event:func(event,'hello'))

Python GUI編程學習筆記之tkinter事件綁定操作詳解

Python GUI編程學習筆記之tkinter事件綁定操作詳解

protocol: protocol的使用:控件.protocol(protocol,handler),其中控件為窗口對象(Tk,Toplevel) 常見protocol有: WM_DELETE_WINDOW:最常用的協議稱為WM_DELETE_WINDOW,用于定義用戶使用窗口管理器明確關閉窗口時發生的情況。如果使用自己的handler來處理事件的話,這時候窗口將不會自動執行關閉 WM_TAKE_FOCUS,WM_SAVE_YOURSELF:[這兩個不知道什么來的。] 更多需參考ICCCM文檔 注意:要留心協議的寫法,在作為字符串填入時不要加多余的空格

from tkinter import *import tkinter.messageboxroot=Tk()root.geometry('200x200')def func1(): if tkinter.messagebox.askyesno('關閉窗口','確認關閉窗口嗎'): root.destroy()root.protocol('WM_DELETE_WINDOW',func1)root.mainloop()

想要了解更多,可以參考tkinter的官方文檔:http://effbot.org/tkinterbook/

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 青岛侦探调查_青岛侦探事务所_青岛调查事务所_青岛婚外情取证-青岛狄仁杰国际侦探公司 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 下水道疏通_管道疏通_马桶疏通_附近疏通电话- 立刻通 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 铝合金电阻-无源谐波滤波器-上海稳达电讯设备厂 | 咖啡加盟,咖啡店加盟连锁品牌-卡小逗 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 合肥礼品公司-合肥礼品定制-商务礼品定制公司-安徽柏榽商贸有限公司 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 大型低温冷却液循环泵-低温水槽冷阱「厂家品牌」京华仪器_京华仪器 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 中医治疗皮肤病_潍坊银康医院「山东」重症皮肤病救治平台 | 高低温试验房-深圳高低温湿热箱-小型高低温冲击试验箱-爱佩试验设备 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 土壤水分自动监测站-SM150便携式土壤水分仪-铭奥仪器 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) |