Python之Tkinter:动作

工具栏和动作:创建自定义工具栏和动作的Python指南 在Python中,你可以使用各种图形用户界面(GUI)工具包来创建自定义工具栏和动作,其中包括Tkinter、PyQt和wxPython等。在本指南中,我们将使用Tkinter作为示例来演示如何创建自定义工具栏和动作。通过这种方式,你可以使用Python和Tkinter库创建自定义工具栏和动作,以满足特定的应用程序需求。这些按钮将用作动作,当用户单击它们时,将执行相应的操作。当用户单击按钮时,相应的动作函数将被调用,并在控制台中打印相应的消息。当用户单击按钮时,相应的函数将被调用,并执行打印语句。 阅读详情

 Python之Tkinter:动作

进行界面编程,首先少不了以下几个重要部分:

l  窗体

l  控件

l  动作

窗体是容器,各式各样的控件放置在容器中,每种控件在触发之后都会执行一定的指令,即完成它的动作。

         怎样将控件绑定到一个命令上?一般来说在创建控件的时候,使用参数command来指定要执行的动作,这个动作可以使以下几类情况:

l  普通函数

l  同属于一个类的其他成员函数

l  内置函数

l  lamda函数

怎样创建窗口?一般来说有这么几种方法,一种是过程式的,使用Tk()。还有一种是面向对象式的,即:继承自Frame. Tk()返回的对象是根容器,Frame产生的对象可以放置在Tk()返回的对象中。

每个窗口在创建之后,使用pack对自己进行布局,并使自己可见。布局的方式可以使用expand、fill、side等。

控件对事件的绑定调用函数bind,第一个参数为表示事件的字符串,第二个为要执行的动作,动作的来源前面已经叙述。

下面为一些例子:

 

 
  1. #!/usr/bin/python 
  2.  
  3.   
  4.  
  5. from Tkinter import * 
  6.  
  7.   
  8.  
  9. def quit(): 
  10.  
  11.          print "I have to leave now ..." 
  12.  
  13.          import sys 
  14.  
  15.          sys.exit() 
  16.  
  17.   
  18.  
  19. b = Button(None,text="quit",bg="red",command=quit) 
  20.  
  21. b.pack() 
  22.  
  23. b.mainloop() 
  24.  
  25.   

创建一个Button,点击后执行的动作为退出。

 

 

 
  1. #!/usr/bin/python 
  2.  
  3.   
  4.  
  5. from Tkinter import * 
  6.  
  7.   
  8.  
  9. class ClassCall(): 
  10.  
  11.          def __init__(self): 
  12.  
  13.                    self.msg="call from a class.\n" 
  14.  
  15.          def __call__(self): 
  16.  
  17.                    print self.msg 
  18.  
  19.                    import sys 
  20.  
  21.                    sys.exit() 
  22.  
  23.   
  24.  
  25. widget = Button(None,text="test",command=ClassCall()) 
  26.  
  27. widget.pack() 
  28.  
  29. widget.mainloop() 

将一个类的实例指定为动作,默认时调用该类的__call__方法。

 

 

 
  1. #!/usr/bin/python 
  2.  
  3.   
  4.  
  5. from Tkinter import * 
  6.  
  7.   
  8.  
  9. class InnerClass(): 
  10.  
  11.          def __init__(self): 
  12.  
  13.                    self.b = Button(None,text="test",command = self.call) 
  14.  
  15.                    self.b.pack() 
  16.  
  17.          def call(self): 
  18.  
  19.                    print "I am leaving now..." 
  20.  
  21.                    import sys 
  22.  
  23.                    sys.exit() 
  24.  
  25.   
  26.  
  27. InnerClass() 
  28.  
  29. mainloop() 
  30.  
  31.   

调用同一个类内部的成员函数

 

 
  1.   
  2.  
  3. #!/usr/bin/python 
  4.  
  5.   
  6.  
  7. from Tkinter import * 
  8.  
  9.   
  10.  
  11. class GuiDesign(): 
  12.  
  13.          def __init__(self,parent=None): 
  14.  
  15.                    self.top = Frame(parent) 
  16.  
  17.                    self.top.pack() 
  18.  
  19.                    self.data = 0 
  20.  
  21.                    self.layout() 
  22.  
  23.                    
  24.  
  25.          def layout(self): 
  26.  
  27.                    Button(self.top,text="exit",command=self.top.quit).pack(side = LEFT) 
  28.  
  29.                    Button(self.top,text="hi",command=self.hi).pack(side = RIGHT) 
  30.  
  31.   
  32.  
  33.          def hi(self): 
  34.  
  35.                    self.data += 1 
  36.  
  37.                    print "hi:%d" % self.data 
  38.  
  39.   
  40.  
  41. frm = Frame() 
  42.  
  43. frm.pack()         #easy to make mistake here. 
  44.  
  45. Label(frm,text="hello").pack(side=TOP) 
  46.  
  47. GuiDesign(frm).top.mainloop() 
  48.  
  49.   

将Frame对象作为参数使用

 

 

 
  1. #!/usr/bin/python 
  2.  
  3.   
  4.  
  5. from Tkinter import * 
  6.  
  7.      
  8.  
  9. def showPosEvent(event): 
  10.  
  11.     print 'Widget=%s X=%s Y=%s' % (event.widget, event.x, event.y) 
  12.  
  13.     print 'Got key perss:',event.char 
  14.  
  15.   
  16.  
  17.      
  18.  
  19. tkroot = Tk() 
  20.  
  21. labelfont = ('courier', 20, 'bold')                
  22.  
  23. widget = Label(tkroot, text='Hello bind world') 
  24.  
  25. widget.config(bg='red', font=labelfont)            
  26.  
  27. widget.config(height=5, width=20)                  
  28.  
  29. widget.pack(expand=YES, fill=BOTH) 
  30.  
  31.   
  32.  
  33. widget.bind('<KeyPress>',  showPosEvent)             
  34.  
  35. widget.focus()                                   
  36.  
  37. tkroot.title('Click Me') 
  38.  
  39. tkroot.mainloop() 

响应按键事件,以及动态配置控件的方式

本文出自 “相信并热爱着” 博客,请务必保留此出处http://hipercomer.blog.51cto.com/4415661/865342

【Python小工具】点击动作记录器-重复自定义次数点击 本文介绍了一款基于Python开发的“自动化点击动作记录器”,旨在帮助用户自动化执行重复的鼠标点击操作,提升工作效率。该工具具备点击动作记录、批量执行、可视化界面和执行日志等核心功能,适用于数据录入、软件测试、游戏辅助和网页操作等场景。技术实现上,工具依赖tkinter构建图形界面,pyautogui控制鼠标操作,threading实现后台执行。文章详细介绍了工具的安装、使用教程、代码解析及实际应用场景,并提供了完整的代码实现,帮助用户快速上手并应用于实际工作中。 阅读详情

相关推荐

Tk-ToolTip:适用于Python Tkinter的ToolTip小部件

Tk工具提示 适用于Python Tkinter的ToolTip小部件

tkinter自定义控件:通过继承Frame实现Expander

和其他成熟的GUI库相比,tkinter的组件并不是太多,但在自定义组件这一点上,并不逊色于其他框架,接下来就自定义一个Expander控件。

微小冷的学习笔记 1327

Python使用tkinter库和GUI界面实现的卡通人物动作变化

基于Python使用tkinter库和GUI界面实现的一个卡通人物动作变化的代码,点击不同的按钮可以触发卡通人物不同的动作变化,

python输入文字点击按钮_Python3 tkinter基础 Entry get 点击按钮 将输入框中文字输出到控制台...

?python : 3.7.0OS : Ubuntu 18.04.1 LTSIDE : PyCharm 2018.2.4conda : 4.5.11type setting : Markdown?code"""@Author : 行初心@Date : 18-10-1@Blog : www.cnblogs.com/xingchuxin@GitHub : github.com/Grateful...

weixin_39636707的博客 470

使用Eggjs做服务端获取微信小程序云开发数据库的access_token

最近自己想写了一个微信小程序,恰巧里面有个云开发,恰巧里面有个数据库,那懒人的我,就直接用云开发里面的数据库了,做测试或者正式也好,对于刚开始来说,免费的配额是够用的。 后来想到在小程序云开发上面的数据怎么看才方便?刚好微信小程序有一个服务端API,那就方便很多了,那就直接敲个服务端来获取云开发上数据库的数据出来到自己的后台上面,那以后管理起来也方便很多。 看了一下服务端api之后,发现有三个重要...

kalenE992的博客 1705

FPGA人脸识别检测(先获取人脸图像以及灰度二值化)

由于图片有空洞等缺陷,所以后面要进行中值滤波、腐蚀、膨胀等算法处理,然后再对人脸进行框选,最后显示出来。最终的成像应该是下面这样的。(后面有时间再接着做哈哈哈)5、通过modelsim将操作后的图片数据写入gray_img.txt里面后,用matlab将txt转成图片。1、先用matlab将图片转换成txt数据,代码如下。读取图片的方式按照博客咸鱼里的方式来做,如下。2、FPGA读取txt数据。4、FPGA顶层模块及仿真。3、FPGA灰度二值化。

weixin_46312715的博客 2531

python tk窗口 选择 销毁_Python Tkinter-时间或点击后销毁窗口

I have following code:import tkinter as tkfrom tkinter import messageboxtry:w = tk.Tk()w.after(3000, lambda: w.destroy()) # Destroy the widget after 3 secondsw.withdraw()messagebox.showinfo('MONEY', '...

weixin_39966740的博客 1058

python操作git推送自己分支并合并主分支(持续优化该工具)

python git

qq_44707265的博客 862

python图形界面化编程GUI(四)记事本项目和画图软件项目

记事本项目 通过具体的项目和案例来具体操作tkinter的组件以及相关的应用。 先创建画布的框架,然后把需要的组件放在画纸上,再把画纸放到画布上。创建组件的时候按照主菜单、子菜单的顺序依次创建,进行布局,然后再写点击时实现的函数,再对菜单进行绑定。 from tkinter import * from tkinter.messagebox import * # 导入消息框 from tkinter.filedialog import * # 导入文件管理,打开,保存以及右键功能等 from tkinte

hwwaizs的博客 858

GD32模拟IIC读写DVC1124

GD32模拟IIC读写集澈AFE芯片DVC1124

ponyma_的博客 1226

【架构师面试-缓存与搜索-1】-缓存与缓存置换策略源码实现

1:什么是缓存 缓存:加速数据访问的存储,降低延迟(latency),提升吞吐量(Throughput)的利器。 1:缓存演进历史 1. 查库 2. ConcurrentHashMap 3. LRU 4. Guava Cache 5. 分布式缓存(redis,MemCache) 6. 多级缓存 2:在什么地方加缓存 缓存对于每个开发者来说是相当熟悉了,为了提高程序的性能我们会去加缓存,但是在什么地方加缓存,如何加缓存呢? 举个栗子:假设一个网站,需要提高性能,缓存可以放在浏览器,可以放

chongfa2008的博客 6438

python的tkinter按钮移动,Python Tkinter按钮动作

I have this code:#!/usr/bin/pythonimport Tkinterfrom tkFileDialog import askopenfilenameimport tkMessageBoxroot = Tkinter.Tk()def getFileName():# show an "Open" dialog box.filename = askopenfilename(f...

weixin_35448535的博客 453

100G SR4 光模块设计

目前100G SR4 光模块主要采用COB 封装技术,在光电芯片键合(bonding)阶段,首先使用银胶将光芯片、电芯片精准固定在电路板规定位置上,该工序即为元件键合(die bonding);然后采用打线机进行金线键合(wire bonding),完成光模块内部的电气连接。在光路耦合阶段,采用8路阵列透镜组完成光路90°弯折及聚焦,并采用有源耦合的工艺进行光路的最终确认,该设计方案工艺简单、高效,借助全自动贴片机、打线机和耦合台就可实现100G SR4 光模块的大批量生产。

Flyin_Group的博客 1372

python的tkinter按钮移动_Python Tkinter按钮动作

I have this code:#!/usr/bin/pythonimport Tkinterfrom tkFileDialog import askopenfilenameimport tkMessageBoxroot = Tkinter.Tk()def getFileName():# show an "Open" dialog box.filename = askopenfilename(f...

weixin_39798497的博客 855

BIOS硬件监控实战:如何手动读取IT8738芯片的温度与风扇数据(附代码)

本文深入探讨了如何绕过操作系统和HWMonitor等监控软件,直接通过寄存器级操作读取IT8738超级I/O芯片的硬件监控数据。文章提供了从动态定位EC空间、构建底层读写函数到解码传感器寄存器映射的完整实战指南,并附有C语言代码示例,帮助开发者理解BIOS硬件监控的底层原理,适用于定制硬件开发与故障诊断。

weixin_29192211的博客 109

【FPGA教程案例87】加解密1——基于FPGA的AES加解密算法verilog实现

DES已走到了它生命的尽头。56比特密钥实在太小,虽然三重DES可以解决密钥长度的问题,但是DES的设计主要针对硬件实现,而今在许多领域,需要用软件方法来实现它,在这种情况下,它的效率相对较低。1997年4月15日美国国家标准和技术研究所(NIST)发起征集AES(Advanced Encryption Standard)算法的活动,并成立了AES工作组。目的是为了确定一个非保密的、公开披露的、全球免费使用的加密算法,用于保护下一世纪政府的敏感信息。这里,我们对AES的基本原理进行介绍:

FPGA/MATLAB学习教程/源码/项目合作开发 2546

python tkinter treeview如何绑定数据库,如何在python中将动作绑定到tkinter树视图的标题?...

I am using the tkinter Treeview widget to show a database. The command when clicking on one of the headings is used for sorting the table based on the clicked column.Additionally I want a tooltip box ...

weixin_33271064的博客 293

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python实战之tkinter库画图,用canver画布教你画会动的哆啦A梦

目录tkinter库画图基本思路画虚线定义画原始人物的函数点击眨眼运动四肢色彩变化 我们知道Python之所以强大,很大一方面都是因为它具有很多强大的第三方库。 而且Python很突出的一方面就是代码用户交互界面的实现,这一点在Python上也被称作GUI编程。 与此同时,Python的GUI编程最常用的库就是tkinter,它包含了很多Python交互界面编程所需要的函数。 最近就有一个客户需求...

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 8654

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python tkinter treeview如何绑定数据库_如何在python中将动作绑定到tkinter树视图的标题?...

I am using the tkinter Treeview widget to show a database. The command when clicking on one of the headings is used for sorting the table based on the clicked column.Additionally I want a tooltip box ...

weixin_39563827的博客 252

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

用python中的tkinter包实现进度条

python中的tkinter包是一种常见的设计程序的GUI界面用的包。本文主要介绍这里面的进度条(Progressbar)组件的常用用法。

weixin_41640959的博客 2668

python GUI相关的一些随笔(tkinter下拉列表,以及下拉列表选中时的动作)

# 生成下拉列表 def makeList(self): comValue = tkinter.StringVar() self.searchWay = Combobox(master=self.init_window_name, textvariable=comValue, height=2, width=10, state="readonly") self.searchWay["v

qq_38856899的博客 946

课设舵机狗总结文——Python+pyserial+tkinter实现电脑端蓝牙控制

前言 本文主要提供使用课设所设计舵机狗的上位机软件,供各位参考 安装好相关库后可以直接运行 相关文件参考 基于python的tkinter和pyserial的简易串口调试器——实现与详解 这里为了不必要的误会,我因为没怎么学过py,所以这个代码大部分是使用这个博客的内容,只是在右侧增加了一些按钮以及通讯函数 代码实现 main.py # UART Tx/Rx demo import tkinter as tk from tkinter import ttk import serial import thr

qq_23297513的博客 655

python tkinter学习7 Menubar

本节学习tkinter模块menubar组件, 创建窗口上的菜单栏及子菜单,

大爷要吃大侠汉堡包 699

Python Tkinter

因为要做一个船模的控制界面,因此写了以下的程序  from tkinter import * class boatGui(): def __init__(self): self.root=Tk() self.root.title("BOAT GUI") #     #s0gfdp #接收信号#s0g0dp

蓝冬雪工作室 549
上一篇: 简单的map性能评测
下一篇: Ubuntu下安装Python的Tkinter和Pmw库
下木
博客等级 码龄16年 88粉丝 132原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值