Tkinter(Tk)Python中文开发手册开发者手册腾讯云开发者社区

大多数情况下,Tkinter模块都是您真正需要的,但也有一些额外的模块可供选择。Tk接口位于名为的二进制模块中_tkinter。该模块包含Tk的底层接口,不应直接由应用程序员使用。它通常是共享库(或DLL),但在某些情况下可能会与Python解释器静态链接。

除了Tk接口模块外,Tkinter还包括许多Python模块。两个最重要的模块是Tkinter模块本身,还有一个模块叫做Tkconstants。前者自动导入后者,所以要使用Tkinter,你只需要导入一个模块:

importTkinter或者更经常地:

将Tk类实例化没有参数。这会创建一个Tk的顶层小部件,它通常是应用程序的主窗口。每个实例都有自己关联的Tcl解释器。

在版本2.4中更改:添加了useTk参数。

该Tcl()函数是一个工厂函数Tk,除了不初始化Tk子系统外,它创建的对象非常类似于该类创建的对象。在不希望创建无关的顶层窗口的环境中,或者在无法(如没有X服务器的Unix/Linux系统)环境中驱动Tcl解释器时,这通常很有用。由对象创建的Tcl()对象可以通过调用其loadtk()方法创建Toplevel窗口(并初始化Tk子系统)。

2.4版本中的新功能。

其他提供Tk支持的模块包括:

ScrolledTextText小部件,内置一个垂直滚动条in.tkColorChooserDialog,让用户选择一个color.tkCommonDialogBase类,用于在这里列出的其他模块中定义的对话框。tkFileDialogCommon对话框允许用户指定要打开的文件或save.tkFontUtilities以帮助使用fonts.tkMessageBoxAccess来标准Tk对话框boxes.tkSimpleDialogBasic对话框和便捷函数.Tkdnd拖放支持Tkinter。这是实验性的,当它在Tk窗口中用TkDND.turtleTurtle图形取代时应该被弃用。

这些已经在Python3中重新命名了;他们都是新tkinter包装的子模块。

本节不是为Tk或Tkinter的详尽教程而设计的。相反,它旨在作为一个制止差距,为系统提供一些入门指导。

Credits:

本部分分为两部分:前半部分(大致)包含背景材料,后半部分可作为便于参考的键盘。

当试图回答“我该怎么做”这个形式的问题时,通常最好找出如何在直接Tk中做“无用”,然后将其转换回相应的Tkinter呼叫。Python程序员通常可以通过查看Tk文档来猜测正确的Python命令。这意味着为了使用Tkinter,你必须知道一些关于Tk的知识。这个文件不能完成这个角色,所以我们能做的最好的事情就是向您提供最好的文档。以下是一些提示:

fromTkinterimport*classApplication(Frame):defsay_hi(self):print"hithere,everyone!"defcreateWidgets(self):self.QUIT=Button(self)self.QUIT["text"]="QUIT"self.QUIT["fg"]="red"self.QUIT["command"]=self.quitself.QUIT.pack({"side":"left"})self.hi_there=Button(self)self.hi_there["text"]="Hello",self.hi_there["command"]=self.say_hiself.hi_there.pack({"side":"left"})def__init__(self,master=None):Frame.__init__(self,master)self.pack()self.createWidgets()root=Tk()app=Application(master=root)app.mainloop()root.destroy()3.(非常)快速浏览Tcl/Tk类层次结构看起来很复杂,但实际上,应用程序员几乎总是引用层次结构底部的类。

注意:

为了使用这个参考资料,有时候您需要知道如何阅读Tk的简短段落以及如何识别Tk命令的各个部分。(请参阅将Tk的基本Tk映射到Tkinter中,Tkinter以了解下面的内容。)

Tk脚本是Tcl程序。像所有的Tcl程序一样,Tk脚本只是由空格分隔的令牌列表。传统知识小部件就是它的类的选项,帮助配置,和行动,使人们做有用的事情。

要在Tk中创建一个小部件,该命令始终是以下形式:

例如:

button.fred-fgred-text"hithere"^^\_____________________/|||classnewoptionscommandwidget(-optval-optval...)一旦创建,小部件的路径名变成新命令。这个新的Widget命令是程序员获取新Widget执行某些操作的句柄。在C语言中,你可以用C++表示它为someAction(fred,someOptions),你可以将它表示为fred.someAction(someOptions),在Tk中,你会说:

.fredsomeActionsomeOptions请注意,对象名称.fred以点开头。

正如你所期望的那样,someAction的合法值将取决于窗口部件的类:.fred禁用如果fred是一个按钮(fred变灰),但不起作用,但如果fred是标签,则不起作用(不支持禁用标签在Tk)。

someOptions的合法价值取决于行动。某些操作(如disable)不需要参数,其他操作(如文本输入框的delete命令)需要参数来指定要删除的文本范围。

Tk中的类命令对应于Tkinter中的类构造函数。

button.fred=====>fred=Button()对象的主对象隐含在创建时给它的新名称中。在Tkinter中,明确指定了主人。

button.panel.fred=====>fred=Button(panel)Tk中的配置选项在带有数值的紧跟标签列表中给出。在Tkinter中,选项在实例构造函数中被指定为关键字参数,在配置调用中被指定为keyword-args,或者在字典样式中被指定为已建立实例的实例索引。请参见设置选项中的设置选项部分。

button.fred-fgred=====>fred=Button(panel,fg="red").fredconfigure-fgred=====>fred["fg"]=redOR==>fred.config(fg="red")在Tk中,要在小部件上执行操作,请使用小部件名称作为命令,然后使用操作名称,可能带有参数(选项)。在Tkinter中,您可以调用类实例上的方法来调用窗口小部件上的操作。Tkinter.py模块中列出了给定小部件可以执行的动作(方法)。

.fredinvoke=====>fred.invoke()要给封装器(几何管理器)提供一个小部件,可以使用可选参数调用封装。在Tkinter中,Pack类拥有所有这些功能,并且各种形式的pack命令都作为方法实现。所有的小部件Tkinter都是从Packer中分类出来的,因此继承了所有的打包方法。有关Tix表格几何管理器的其他信息,请参阅模块文档。

你的应用程序在这里(Python)一个Python应用程序进行Tkinter调用.Tkinter(Python模块)这个调用(例如,创建一个按钮控件)在Tkinter模块中实现,该模块是用Python编写的。这个Python函数将解析命令和参数并将它们转换为一种形式,使它们看起来好像它们来自Tk脚本而不是Python脚本.tkinter(C)这些命令及其参数将传递给C在tkinter中的功能-注意小写-扩展模块.TkWidgets(C和Tcl)这个C函数可以调用其他C模块,包括组成Tk库的C函数。Tk在C和一些Tcl中实现。Tk小部件的Tcl部分用于将某些默认行为绑定到小部件,并且在Tkinter导入Python模块的位置执行一次。(用户从不会看到这个阶段).Tk(C)TkWidgets的Tk部分实现了最终映射到...Xlib(C)Xlib库在屏幕上绘制图形。

选项控制一些东西,比如一个小部件的颜色和边框宽度。选项可以通过三种方式设置:

在创建对象时,使用关键字参数

fred=Button(self,fg="red",bg="blue")创建对象后,将选项名称视为字典索引

fred["fg"]="red"fred["bg"]="blue"使用config()方法更新对象创建后的多个attrs

请注意,手册页列出了每个窗口小部件的“标准选项”和“小部件特定选项”。前者是许多小部件通用的选项列表,后者是特定小部件特有的选项。标准选项记录在选项(3)手册页上。

本文档没有区分标准和特定于窗口小部件的选项。有些选项不适用于某些类型的小部件。给定小部件是否响应特定选项取决于小部件的类别;按钮有一个command选项,标签没有。

指数

含义

0

选项名称

1

数据库查找的选项名称

2

选项类用于数据库查找

3

默认值

4

当前值

例:

封隔器是Tk的几何管理机制之一。几何管理器用于指定小部件在其容器中的定位的相对位置-它们是相互的主人。相较于较为繁琐placer(用于不常用,我们在这里不介绍),封隔器采用定性关系规范-above,totheleftof,filling等等-和工作的一切,以确定确切位置坐标为你。

任何主控件的大小由内部“从控件”的大小决定。打包器用于控制从站窗口小部件在其打包的主站内出现的位置。您可以将窗口小部件封装到框架中,并将框架封装到其他框架中,以实现您所需的布局。此外,这种安排是动态调整的,以适应配置的增量变化,一旦打包完成。

请注意,窗口小部件在用几何管理器指定几何图形之前不会显示。忽略几何规格是一个常见的早期错误,然后在创建小部件时会感到惊讶,但没有任何内容出现。例如,小部件只有在pack()应用打包器的方法后才会出现。

可以使用关键字选项/值对调用pack()方法,该对控制了窗口小部件出现在其容器中的位置,以及在主应用程序窗口调整大小时的行为方式。这里有些例子:

fred.pack()#defaultstoside="top"fred.pack(side="left")fred.pack(expand=1)6.3封装选项有关打包机的更多信息及其可以选择的选项,请参阅JohnOusterhout书中的手册页和第183页。

某些小部件(如文本输入小部件)的当前值设置可以通过使用特殊选项直接连接到应用程序变量。这些选项是可变的,文本变量,onvalue,offvalue和值。这种连接可以两种方式工作:如果变量因任何原因而变化,它所连接的小部件将被更新以反映新值。

不幸的是,在Tkinter的当前实现中,不可能通过变量或文本变量选项将任意Python变量移交给小部件。这个变量的唯一类型是从Tkinter模块中定义的类变量中分类的变量。

已经定义了许多有用的变量的子类:StringVar,IntVar,DoubleVar和BooleanVar。要读取此变量的当前值,请调用get()方法,并更改其值,您可以调用set()方法。如果你遵循这个协议,那么这个小部件将总是跟踪这个变量的值,而不需要你做进一步的干预。

要查看包含给定窗口小部件的顶层窗口,通常可以引用窗口小部件的主窗口。当然,如果这个小部件已经被封装在一个框架内,那么这个主框架将不会代表一个顶层窗口。要访问包含任意小部件的顶级窗口,可以调用该_root()方法。该方法以下划线开头,表示这个函数是实现的一部分,而不是Tk功能的接口。

以下是一些典型用法的例子:

这是任何不带参数的Python函数。例如:

通过widget命令的绑定方法,您可以监视某些事件并在发生该事件类型时触发回调函数。绑定方法的形式是:

defturnRed(self,event):event.widget["activeforeground"]="red"self.button.bind("",self.turnRed)注意事件的widget字段在turnRed()回调中被访问。该字段包含捕获X事件的小部件。下表列出了您可以访问的其他事件字段以及它们在Tk中的表示方式,这在引用Tk手册页时非常有用。

TkTkinterEventFieldTkTkinterEventField------------------------------------------%ffocus%Achar%hheight%Esend_event%kkeycode%Kkeysym%sstate%Nkeysym_num%ttime%Ttype%wwidth%Wwidget%xx%Xx_root%yy%Yy_root6.8索引参数许多小部件需要传递“索引”参数。它们用于指向Text小部件中的特定位置,或指向Entry小部件中的特定字符或指向Menu小部件中的特定菜单项。

Entrywidgetindexes(index,viewindex,etc.)

条目窗口小部件具有涉及正在显示的文本中的字符位置的选项。您可以使用这些Tkinter函数来访问文本小部件中的这些特殊点:

AtEnd()指的是textAtInsert()中的最后一个位置,指的是文本光标isAtSelFirst()指示选定文本的开始点的点.AtSelLast()表示所选文本的最后一个点,finallyAt(x,y)指向到像素位置x,y处的字符(对于包含单行文本的文本输入小部件,y不使用y)。文本小部件索引文本小部件的索引符号非常丰富,最好在Tk中进行描述manpages.Menu索引(menu.invoke(),menu.entryconfig()等)

一些菜单选项和方法可以操作特定的菜单条目。无论何时,对于选项或参数都需要菜单索引,您可以通过:

位图/像素图像可以通过以下子类创建Tkinter.Image:

任何类型的图像都是通过file或data选项创建的(其他选项也可用)。

这个图像对象可以用于任何一个image小部件支持的选项(例如标签,按钮,菜单)。在这些情况下,Tk将不会保留对图像的引用。当删除对图像对象的最后一个Python引用时,图像数据也会被删除,并且无论图像在哪里使用,Tk都会显示一个空框。

Tk允许你注册和取消注册一个回调函数,当一个文件描述符可能有I/O时,这个回调函数将从Tkmainloop调用。每个文件描述符只能注册一个处理程序。示例代码:

importTkinterwidget=Tkinter.Tk()mask=Tkinter.READABLE|Tkinter.WRITABLEwidget.tk.createfilehandler(file,mask,callback)...widget.tk.deletefilehandler(file)此功能在Windows上不可用。

由于您不知道有多少字节可供读取,因此您可能不想使用BufferedIOBaseorTextIOBaseread()或readline()方法,因为这些字节会坚持读取预定义的字节数。对于套接字,recv()orrecvfrom()方法可以正常工作;对于其他文件,请使用原始读取或os.read(file.fileno(),maxbytecount)。

Widget.tk.createfilehandler(file,mask,func)

注册文件处理程序回调函数func。该文件的参数可以是与一个对象fileno()的方法(例如,文件或套接字对象),或一个整数文件描述符。的掩模参数是任何以下三个常量的或运算组合。回调被调用如下:

callback(file,mask)Widget.tk.deletefilehandler(file)

取消注册文件处理程序。

Tkinter.READABLETkinter.WRITABLETkinter.EXCEPTION

掩码参数中使用的常量。

本文档系腾讯云开发者社区成员共同维护,如有问题请联系cloudcommunity@tencent.com

THE END
1.BestHPAccessoriesforProductivity2024HP?TechTakesDiscover the best HP accessories to enhance your productivity in 2024, from premium mice and keyboards to professional monitors and webcams. | HP? Tech Takes - UKhttps://www.hp.com/gb-en/shop/tech-takes/best-hp-accessories-to-gift-for-best-productivity?sel=PRN,newegg/1000%27[0]
2.NewsMTNews about MT-Propeller develpments and supplemental type certifications for aircraft propellershttps://www.mt-propeller.com/en/entw/news.htm
3.德贝尔消毒柜全国各市区售后服务热线(快速上门报修)东莞TCL油烟机维修服务涵盖了各类故障的排查和修复,包括电路故障、电机故障、换挡器故障等。我们的维修师傅具备丰富的维修经验和专业的技术,能够快速准确地定位问题并进行修复。 我们还提供油烟机的清洗保养服务,确保油烟机长时间使用效果更佳。 3、东莞TCL油烟机维修的优势 选择东莞TCL油烟机维修服务的优势在于我们拥有一https://mip.abbyqvx.cn/postss/WCdAn50W.html
4.The28thChinaInternationalPetShowWEEKAQUAOneThe 28th China International Pet Show ?Previous: null ?Next: null Company Profile Latest News Blog Video App User Guide Contact Us QUICK NAVIGATION Lighting System CO2 System Filtration System Maintenance Tool Fish tank cabinet Substrate System Testing Tool Temperature control https://www.weekaqua.com/newsinfo/7600577.html
5.为何不让TCL新风空调小蓝翼II自带光环成为敢为不凡研发团队的加持在发布会上,TCL新风空调小蓝翼II即刻被顺德某家电企业购买,以便深入研究和学习。它在京东首次发售时,就迅速销售超过1000套,自带光环。而这份光环的背后,是一群敢于创新、不凡的技术研发团队。 小蓝翼II仅是他们众多成就中的一个代表作之一。在“小蓝翼真新风”2021 TCL新风空调小蓝翼Ⅱ新品发布会上,TCL实业副总裁、https://www.topwlw39.cn/kong-diao/449531.html
6.TCL再发3款MiniLED电视新品,Q10KQ10KPro和T7K向影音爱好者中国商报(记者 周子荑)4月21日,TCL召开了以“向影音爱好者致敬”为主题的2024 TCL 典藏级Mini LED电视新品发布会。 发布会上,TCL连发了3款全新Mini LED电视产品,分别是典藏级Mini LED电视Q10K 、真XDR高画质Mini LED电视 T7K,以及线上唯一超旗舰电视产品:典藏级旗舰Mini LED电视Q10K Pro。三大产品覆盖了55/https://www.zgswcn.com/news.html?aid=180929
7.TCL雷鸟官网商城,探索智能生态,体验前沿科技,TCL雷鸟官网商城TCL雷鸟官网商城提供丰富的产品系列,包括4K超高清、8K超高清、智能语音、社交电视等多种类型,4K超高清电视为您带来细腻的画面表现,让您身临其境地感受电影的魅力;智能语音电视则让您通过语音指令轻松操控电视,实现人机交互的便捷体验,商城还推出了一系列智能电视套餐,包括电视、音响、机顶盒等配套产品,为消费者提供一站https://www.wfhengfa.com/post/6004.html
8.请给出基于vscode编辑器,配置TCL运行环境的教程在TCL官网(https://www.tcl.tk/)下载合适的安装包,选择相应的版本进行下载。其中,Windows系统可以选择WindowsBinaries(如tcl8.6.10-win32-x64.zip),以管理员权限解压到目录C:\Tcl。 安装VSCode编辑器: 在VSCode官网(https://code.visualstudio.com/)下载安装包,安装完成后启动VSCode编辑器。 https://wenku.csdn.net/answer/f9b80cebc49e484f84a13265e25ded70
9.间隔27年的大版本更新!脚本语言Tcl/Tk9来自快科技官方脚本语言Tcl/Tk 9.0发布】脚本语言Tcl/Tk正式发布了9.0版本,其上一次大版本8.0则发布于1997年,间隔了27年。Tcl由John Ousterhout在1980年代后期创建,设计初衷是为了提供一个快速的脚本执行环境,实现简单的命令行指令和脚本的快速开发。使用最广泛的TCL扩展是Tk,Tk提供了各种平台下的图形用户界面GUI,甚至连Python都不https://weibo.com/1659643027/OyWv3pFZg
10.2024Python最新安装详细教程(202403tcl/tk and IDLE 安装tkinter 和IDLE开发环境。 该项是否勾选可根据需求而定。Tkinter 模块是Python 的标准 Tk GUI 工具包的接口,它可以创建 GUI 应用程序。IDLE是Python的集成开发和学习环境,是一个可视化的shell命令行、一个简单的命令运行窗口。 Python test suite 安装Python的标准库测试套件,可用于执行已编写https://www.teacup.com.cn/article/410906
11.OOMMF/NISTSoftwareThe freely available open source scripting language Tcl/Tk is required to build and/or run OOMMF. We recommend the latest stable versions of Tcl and Tk concurrent with your release of OOMMF. The oldest versions of Tcl/Tk compatible with OOMMF varies with the computing platform, but any https://math.nist.gov/oommf/software.html
12.libtcl8.6.so和libtk8.6.so如果要使用Ruby / Tk(tk.rb等),则tcltklib.so必须正常运行。如果您在编译时遇到任何问题,请参见和 。 即使tcltklib.so存在于Ruby库目录中,如果没有Tcl / Tk库(例如libtcl8.4.so) 上传者:weixin_42129970时间:2021-05-17 ActiveTcl-8.6. 版本的软件安装包 不需要大家去官网下载了 省心不用注册账号直接拿来https://www.iteye.com/resource/guotong1988-11018746
13.www.demaxmedical.com/fancai37959524/905228.htmTK白丝女仆丨视频vk 女男人与母狗zoozoo 黄色一片网络少妇自摸 刘亦菲淫水 呦B被操影底 免费一级操逼 狠狠狠综合7777久夜色撩人 一线天逼电影 制服下裸航空sdde339 16美女隐私秘?照片免费看 操大肥逼黑逼逼 干逼打炮无套内射视频免费看 国模f婷啪啪超大尺度150p 又黄又又爽爽女性爽喷水视频学生妹https://www.demaxmedical.com/fancai37959524/905228.htm
14.www.taizhoufangtongren.com/xxxr21558505性欧美videos tk笑击档案催笑击漫画 女人强奸免费网 又纯又欲又粗又硬又大免费爱爱 奸黄色色青青日本 成人性调教在线播放 播放美国毛片 免看黄大片AA 白虎口AAA黄色视频播放 一级A婬片试看1O分钟喷水 蜜臂av软件 必发娱乐app官网版 美女小穴顶到深处污污污 欧美午夜精品久久久久久蜜 肏小屄亲小说http://www.taizhoufangtongren.com/xxxr21558505
15.en.quinovare.com/xxxr99840397/682342.htm日系全身TK视频丨VK 9天前 欧美美女骚逼嫩穴 本期双色球开奖号码 6天前 欧美老熟妇xxxx beeg 5天前 玉露春潮在线播放 免费无码A级成人片 6天前 国产激情视频就去看看 70岁老人森林交易10元一次 2天前 黄色录相在线看特级片 欧美性爱制服丝袜在线观看 7天前 在哪能看到免费的成人超逼视频 免费一级全http://en.quinovare.com/xxxr99840397/682342.htm
16.TCLTK300FS101TCLTK300FS101怎么样报价参数图片点评TCL TK300F-S101,五重过滤带HEAP和加湿功能,支持app控制,精细过滤净化,智能感应,3D循环净化,加密HEPA过滤网。 TCL TK300F-S101 主要参数 适用面积:10-60㎡ 额定风量:300立方米/小时 风速:四档风速设定 查看全部参数 TCL TK300F-S101常见问答 QTCL TKJ-F260B净化器工作噪音有多大? https://product.yesky.com/product/971/971505/
17.www.zhilitong.net/moken73469.html因为田秋子与胡成的关系,她已经被行业嫌弃,所以便想要在胡成那拿下一笔高额的补偿费,随后自己便飞往国外,但是没想到胡成不但给不了她名分,就连钱也不舍得出,说白了这不是白玩吗? 看着胡成的绝情,田秋子彻底失去理智,竟然在争吵中拿起餐桌上的刀子,一下就刺进了胡成的心上,嘴里还疯狂的喊着什么得不到就一起https://www.zhilitong.net/moken73469.html
18.TCL官方商城TCL官方商城有赞微商城,提供TCL官方商城各类正品行货商品的报价、促销、导购、图片等信息,非常欢迎您访问TCL官方商城有赞微商城。https://tk.tcl.com/
19.tclortcl/tkLearn more Get Tcl/Tk(9.0) (8.6) Browse theTcler's Wiki Read thereference pagesandother documentationhttps://www.tcl-lang.org/
20.TkDocsHomeTkDocs features tutorials and other material for modern Tk GUI development, using Python/Tkinter, Tcl, Ruby, and Perl/Tkx.http://www.tkdocs.com/
21.Tcl/Tk官方教程Tcl/Tk 官网文档 手册简介 Tcl/Tk 官方参考文档 更新记录 多端阅读 在移动端查看《Tcl/Tk》 直接访问https://m.w3cschool.cn/doc_tcl_tk/https://www.w3cschool.cn/doc_tcl_tk/
22.TclThe Tool Command Language implementationhttps://sourceforge.net/projects/tcl/files/Tcl/
23.www.cqtxwl.cn/newxr67739329.shtmltcl_AC_t*ap_hanging 翻译 89.19MB 36%好评815人 苍井空4p交换 无码人妻熟妇Aⅴ又粗又大 9117c.cpp官网版 国产三级片AV在线免费观看 42.41MB 23%好评27人 黄片视频APP 人人爱人人妻人人日系全身Tk一视频丨Vk 57.68MB 87%好评721人 jizz小蓝视频gay打飞机手淫中国美国日本 日本三级片http://www.cqtxwl.cn/newxr67739329.shtml
24.whshitao.com/fancai66262738/20240909/20292374/050811官网信息显示,青岛啤酒精品原浆精选全球优质大麦和优质酒花,使用源于1903年的百年酵母,传承百年经典“两段法低温慢熟”工艺,在生产过程中严格遵守“不过滤”“不稀释”“不杀菌”的“三不”原则。因充分保有活性酵母和氨基酸,酒体色泽金黄,泡沫细腻绵密、麦香浓郁,而广受消费者追捧。 http://whshitao.com/fancai66262738/20240909/20292374/050811
25.17.开发环境其开发库是opencv-devel。 sqlite3-devel SQLite 3数据库的开发包。 zlib-devel 压缩函数库zlib的开发包。 tcllib, tcl-devel, tclx, tix, tk, tk-devel, vtcl 这些是Tcl/Tk编程的工具和库文件,编译源码的时候可能遇到。 上面介绍的当然只是冰山一角,还有茫茫多的工具和开发库。实际需要哪些就装哪些https://lug.ustc.edu.cn/sites/opensuse-guide/develop.php