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

JSON(详解)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它以易于阅读和编写的文本格式来存储和表示数据,通常用于在不同的系统之间进行数据交换。JSON数据以键-值对的形式组织,可以包含对象、数组、字符串、数字等基本数据类型。它经常在Web开发、API通信等领域被广泛使用。

7704

扣子(Coze)实战:自动化拆解抖音对标账号,输出完整报告(附源码下载)

本文要分享的工作流,可以实现对标账号的拆解与分析,最后输出一份完整的分析报告,报告中包含有账号基本信息、账号定位、人设设计、选题方向、内容结构、变现路径以及优化建议等。

MCC_MCC_MCC的博客 2827

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

MySQL 8.0数据库崩了别慌!手把手教你仅凭一个.ibd文件找回数据(附Go工具包)

本文详细介绍了在MySQL 8.0数据库崩溃后,如何仅凭.ibd文件恢复数据的完整流程。通过使用Go语言工具包和ALTER TABLE技巧,即使没有备份也能实现数据重生。文章包含从环境准备到数据验证的全方位指导,帮助DBA和开发者应对紧急数据恢复场景。

weixin_29235923的博客 419

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

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

hwwaizs的博客 858

Web前端开发技术:实验14-16

实验14 1. 编写JavaScript程序实现“九九乘法口诀”表,如图14-40所示。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>九九乘法表</title> </head> <body> <h1>九九乘法表</h1> </body> <scri

KslgmrDry的博客 1万+

知识见闻 - Salesforce公司发展史

不过,通过将自己开发的产品与公司收购的其它云产品进行结合,Salesforce可以为用户提供更多的产品种类,Salesforce可以继续强化自己的平台和产品套件属性,这一平台和套件的发展规模已经远远超出了一个单一的CRM的规模。他们围绕一个相对简单的产品向用户兜售云的概念,然后,他们开始开发其它产品,并寻找培育一个不断增长的生态系统的方法,最理想的情况是能驱动Salesforce的营收增长。现在,Salesforce通过打造更多的用例并改进自己产品的方式来直接应对竞争对手的竞争,从而捍卫自己现在的地位。

guoqx的专栏 1450

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

【项目实战】AES实施应符合NIST密码算法验证程序

AES由美国国家标准与技术研究院(NIST)制定。NIST是负责开发和维护美国政府使用的技术标准的机构,包括加密标准。

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

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

2026年03月CCF-GESP编程能力等级认证C++编程一级真题解析

本文收录于专栏《。订阅后可阅读专栏内所有文章。

人生就是一个不断学习的过程 337

【我的Android进阶之旅】解决android应用使用android:persistent属性带来的系统Launcher应用必须重启设备才生效的问题,大幅度提升开发效率

一、问题描述 我们在开发系统级别应用,比如Launcher桌面的时候,会发现有个问题:每次Launcher修改完代码,重新编译之后,安装到android设备上之后,必须重启才会生效。否则就是使用了之前的Launcher版本的内容。而每次重启设备得一分钟左右,太慢了,太影响效率了! 1.1 痛点 每次更新完代码,重新安装之后,必须重启设备才会生效。效率太TM低了! 二、分析问题 经过一轮代码排查,最终发现是因为src\main\AndroidManifest.xml文件中,定义application使用了an

字节卷动 1713

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

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

OV9734 DATASHEET,完整规格书

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

WINCC7.3破解文件

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

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

余额充值