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

STC8G1K08A的10位PWM避坑指南:为什么你的占空比调节总失效?(附寄存器操作时序图)

本文深入剖析了STC8G1K08A单片机10位PWM功能中占空比调节失效的核心原因,揭示了数据手册未明确指出的寄存器操作时序陷阱。通过对比错误与正确配置的波形,文章指出关键在于更新占空比高2位前需临时关闭PWM输出,并提供了经过验证的安全操作宏与函数库,帮助开发者彻底解决此问题,实现0%-100%的平滑控制。

yyy34的博客 747

Vue集成天地图:从定位到交互绘图的完整实践指南

本文详细介绍了如何在Vue项目中集成天地图API,从基础配置到高级功能实现,包括定位、标点、画线等交互绘图功能。通过实战代码示例和性能优化技巧,帮助开发者快速掌握Vue与天地图的结合应用,提升地图开发效率。

weixin_29013129的博客 248

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

STM32实战:滑模观测器与PLL锁相环融合的FOC无感控制精解

本文深入解析了STM32平台下结合滑模观测器(SMO)与PLL锁相环的无感FOC控制技术。通过实战案例详细介绍了PLL锁相环在消除SMO高频抖振、提升角度跟踪精度方面的关键作用,并分享了工程调参技巧、C语言实现细节及系统联调方法,为电机控制开发者提供了一套完整的解决方案。

weixin_30838873的博客 190

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

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

hwwaizs的博客 858

国产SR8201F以太网PHY芯片调试避坑指南:从机贴失败到杜邦线救场的实战记录

本文详细介绍了国产SR8201F以太网PHY芯片的调试避坑指南,涵盖硬件设计、PCB布局、SMT贴片及软件驱动等关键环节。通过实战案例解析,帮助工程师解决MII/RMII接口配置、电源设计、信号完整性等典型问题,提升以太网通信稳定性与EMC性能。

c6d7e8f9g的博客 1216

从补码原理到实践:RISC-V中addi指令的符号扩展机制详解

本文深入解析了RISC-V架构中addi指令的符号扩展机制。从补码的数学原理出发,详细阐述了12位立即数在指令编码中如何通过符号位进行扩展,并结合lui指令,揭示了加载任意32位立即数的正确方法与实践陷阱,帮助开发者编写高效可靠的底层代码。

weixin_29161719的博客 139

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

初探Proxmox Datacenter Manager:统一管理多集群与单节点的利器

本文介绍了Proxmox Datacenter Manager (PDM) 这一统一管理工具,它能有效解决多套Proxmox VE环境(包括集群和单节点)管理碎片化的痛点。文章详细阐述了PDM的核心功能、安装部署步骤,并通过实战演示了如何添加单节点与整个集群,实现资源的集中监控与基础运维,为运维人员提供了高效的集中管理解决方案。

weixin_29217235的博客 160

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

基于STM32与ESP8266的MQTT协议实现阿里云物联网平台远程LED控制

本文详细介绍了如何利用STM32单片机与ESP8266 Wi-Fi模块,通过MQTT协议连接阿里云物联网平台,实现远程控制LED灯的完整物联网项目。内容涵盖硬件连接、阿里云平台配置、MQTT协议与AT指令解析、STM32代码实战以及数据解析与调试技巧,为嵌入式开发者提供了一个清晰、实用的物联网入门实践指南。

svm4gardener的博客 791

YOLOv11涨点改进| Kimi团队 2026 |独家创新首发、注意力改进篇|爆火AttnRes残差自注意力模块,含多种创新改进,借助残差思想,缓解细节信息在传播过程中被稀释,促进YOLOv11涨点

🔥本文提出AttnRes残差自注意力模块,通过深度维度的注意力加权机制替代传统固定残差累加方式,使YOLOv11网络能自适应选择更有价值的历史层特征进行聚合。该方法缓解了浅层细节信息在深层传播过程中被稀释的问题,有效融合浅层纹理与深层语义特征,提升小目标、密集目标和复杂场景的检测能力。AttnRes还改善了深层网络的梯度分布与训练稳定性,增强模型收敛质量和泛化能力。实验表明,该模块能以较小计算开销显著提升YOLOv11的特征表达能力、检测精度和整体鲁棒性。文中详细介绍了模块结构、实现原理、优势特点

Ai缝合怪、助力小伙伴高效发论文 125

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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

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

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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

用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、付费专栏及课程。

余额充值