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

TMC2209的UART模式详解:如何用串口调试助手配置细分和电流(避坑指南)

本文深入解析TMC2209步进电机驱动器的UART模式,详细讲解如何通过串口调试助手配置细分和电流,包括硬件连接、通信协议、关键寄存器设置及高级功能应用。提供实战避坑指南,帮助开发者优化步进电机控制性能,适用于精密仪器、3D打印等场景。

weixin_29166013的博客 541

SMRATS(一) SMARTS+PPO baseline运行教程

python类方法 class Agent: @classmethod def from_function() python typing 含义 为防止弱类型python出现忘记变量类型的问题,python3.5及之后版本增加了对应的类型提示。 输入和输出类型 函数接受并返回一个字符串,注释像下面这样: def greeting(name: str) -> str: return 'Hello ' + name 常用的typing类型 int,long,float: 整型,

Freshduke的博客 1413

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脚本】Python自动大麦网抢票,准点原价秒杀演唱会门票,拒绝黄牛交易!从我做起!!!1

你是否错过了周杰伦的票,最近又没抢到五月天的票,不要太难过,今晚有张学友的票,后天还有张杰的票,加油哦!

weixin_45841831的博客 6万+

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

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

hwwaizs的博客 858

计算机视觉研究方向有哪些?什么方向最好出论文创新点

计算机视觉(CV)是人工智能中一个活跃且应用广泛的研究领域,旨在让计算机理解和处理图像与视频。其主要研究方向包括图像分类、目标检测、图像分割、姿态估计、图像生成与重建、视频理解、三维视觉和跨模态视觉理解。这些方向不仅涉及基础理论,还紧密联系实际应用,适合发表论文和实现项目落地。为了在CV领域取得创新,建议关注跨模态学习、小样本学习、图像生成模型的控制与轻量化、视频分析以及医学图像分析等方向。此外,通过阅读顶会论文、复现SOTA方法、模型微调和数据集创新等方式,可以有效切入研究并产生有价值的成果。

OpenCVtuxiang的博客 3549

ck3m多轴运动控制器笔记1:电机的配置与注意事项

利用PMAC(CK3M)运动控制器来实现对电机的控制,对具体的配置流程和注意事项讲解

p975468132的博客 4641

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

SCU【C】程序设计基础期末安全项目lab2-Deadbeef-writeup(附题目&源码)

项目名称(本质:栈溢出攻击)【源码在文首】和lab1一样,此题又是美国卡耐基梅隆大学的平时作业哈哈哈! 项目要求是把栈溢出,强行更改函数返回值,输出0xdeadbeef。

2301_79586491的博客 1544

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

混合部署 操作系统混合部署

在openEuler Embedded 22.03中,已经集成了OpenAMP相关支持,并与openEuler的SIG Zephyr合作实现了openEuler Embedded与实时操作系统Zephyr在QEMU平台上的混合部署。具体的混合部署方式取决于设备的硬件和软件支持。例如,可以使用虚拟机软件(如VirtualBox)在Linux操作系统上运行Android虚拟机,从而实现Linux和Android的混合部署。需要注意的是,混合部署涉及到设备的硬件和软件兼容性,以及操作系统的配置和管理。

dianqicyuyan的博客 1763

【异常】OpenClaw LLM请求超时故障全链路排查与解决方案 LLM request timed out. 网络连接超时了

摘要: OpenClaw LLM请求超时故障是高频网络交互问题,表现为客户端在预设时间内未收到服务端响应。根因分为四类:客户端配置缺陷(如超时阈值不合理)、网络链路异常(防火墙拦截等)、服务端问题(限流/宕机)及硬件瓶颈(算力不足)。解决方案分三步: 通用排查:检查网络连通性、关闭防火墙/代理校验,调整超时阈值至60-300秒; 分场景修复:云端API需核对密钥/限流规则,本地部署需验证服务状态与硬件资源; 兜底方案:重启程序、更新版本或更换服务端点,结合日志精准定位。修复后不影响OpenClaw数据完整性

奶爸的编程之路,也就一周冷个三天 2058

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

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

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

余额充值