tkinter基本入门文字教程(详细介绍tkinter各项例程).doc

上传人:F****n 文档编号:98043208 上传时间:2019-09-07 格式:DOC 页数:42 大小:192KB
返回 下载 相关 举报
tkinter基本入门文字教程(详细介绍tkinter各项例程).doc_第1页
第1页 / 共42页
tkinter基本入门文字教程(详细介绍tkinter各项例程).doc_第2页
第2页 / 共42页
tkinter基本入门文字教程(详细介绍tkinter各项例程).doc_第3页
第3页 / 共42页
tkinter基本入门文字教程(详细介绍tkinter各项例程).doc_第4页
第4页 / 共42页
tkinter基本入门文字教程(详细介绍tkinter各项例程).doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《tkinter基本入门文字教程(详细介绍tkinter各项例程).doc》由会员分享,可在线阅读,更多相关《tkinter基本入门文字教程(详细介绍tkinter各项例程).doc(42页珍藏版)》请在金锄头文库上搜索。

1、L2cl整理 什么是TkinterTkinter(也叫Tk接口)是Tk图形用户界面工具包标准的Python接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。Tk和Tkinter可以运行在大多数的Unix平台、Windows、和Macintosh系统。Tkinter 由一定数量的模块组成。Tkinter位于一个名为_tkinter(较早的版本名为tkinter)的二进制模块中 。Tkinter包含了对Tk的低 级接口模块,低级接口并不会被应用级程序员直接使用,通常是一个共享库(或DLL),但是在一些情况下它也被Python解释器静态链接。除了Tk接口模块,Tkinter也包含了一定数

2、量的Python模块。其中两个最重要的模块是Tkinter本身和名为Tkconstants的模块。前者自动引导后者,因此使用Tkinter,你首先需要做的是导入Tkinter模块,代码如下:import Tkinter或from Tkinter import *第一个Tkinter程序一、代码如下:# File: hello1.pyfrom Tkinter import *root = Tk()w = Label(root, text=Hello, world!)w.pack()root.mainloop()运行结果如下:关闭这个窗口即可终止这个程序的运行。二、对代码的说明:我们通过导入Tki

3、nter模块开始。Tkinter模块包含了用Tk工具包工作所需的所有的类,函数和其它一些必须的东西。在大多数情况下,你只需要简单的从Tkinter导入所有的东西到你的模块的名字空间,如下所示:from Tkinter import *然 后初始化Tkinter,方法是我们必须先创建一个Tk root(根)窗口部件,它是一个普通的窗口,带有标题条和其它由你的窗口管理器供给的附属。你 应该只创建一个root窗口部件,这个root窗口部件必须在其它窗口部件创建之前创建。初始化Tkinter的代码如下:root = Tk()接着我们创建一个Label(标签)窗口部件作为这个root窗口的孩子,代码如下

4、:w = Label(root, text= http:/ !)Label窗口部件可以显示文本、图标或图象。我们这里用text选项来指定要显示的文本。接下来我们在Label窗口部件上调用了pack方法,它告诉Label窗口部件去调整自己的尺寸来适应所给定文本的大小,并且使用自己可见,代码如下:w.pack()但是在这些发生之前,我们必须进入Tkinter的事件循环,代码如下:root.mainloop()这 个程序将一直处在事件循环之中,直到我们关闭了这个窗口。事件循环不仅仅处理来自用户的事件(如鼠标敲击和按键按下)或者窗口系统(重绘事件和窗口配置消 息),它也处理来自Tkinter自身的工作

5、等待队列,这些工作之一就包括由pack方法所产生的工作和显示更新。这就意味着这个应用程序窗口在进入这个 事件循环之前将不会显示出来。 第二个Tkinter程序当我们在写一个较大的程序的时候,把代码封装在类中通常是一个好的主意。一、代码如下:# File: hello2.pyfrom Tkinter import *class App: def _init_(self, master): frame = Frame(master) frame.pack() self.button = Button(frame, text=QUIT, fg=red, command=frame.quit) sel

6、f.button.pack(side= http:/ LEFT) self.hi_there = Button(frame, text=Hello, command=self.say_hi) self.hi_there.pack(side=LEFT) def say_hi(self): print hi there, everyone!root = Tk()app = App(root)root.mainloop()运行结果如下:如果你点击Hello按钮,将在控制台打印出hi there, everyone! 。如果你点击QUIT按钮,程序将终止。二、代码说明:这个简单的应用程序被写成了一个类

7、。这个构造器(_init_ 方法)通过一个父部件被调用,并针对父部件增加了一些子部件。构造器通过创建一个Frame(帧)窗口部件开始。一个帧是一个简单的容器,在这个例子中,我们仅用来容纳另外的两个部件。class App: def _init_(self, master): frame = Frame(master) frame.pack()这个帧实例被存储在一个名为Frame的局部变量中。在创建了这个部件后,我们立即调用pack方法来使用这个帧可见。然后我们创建两个Button(按钮)窗口部件作为这个帧的孩子。self.button = Button(frame, text=QUIT, fg

8、=red, command=frame.quit)self.button.pack(side=LEFT)self.hi_there = Button(frame, text=Hello, command=self.say_hi)self.hi_there.pack(side=LEFT)这次,我们传递了一定数量的选项给构造器。第一个按钮被标为QUIT,字为红色(fg是foreground的缩写)。第二个被标为Hello。两个按钮都有一个command选项。这个选项指定了一个函数或方法,在按钮被点击时会被调用。按 钮实例被存储在实例属性组中。side=LEFT 参数表示这两个按钮在帧中将被分开放置

9、;第一个按钮被放置在帧的左边缘,第二个被放在第一个的右边(帧 的左边缘仍保留着空格)。默认情况下,部件的放置都是相对于它们的父亲(frame部件相对于master,button相对于frame)。如果 side选项没指定,side默认值为TOP。Hello按钮的回调函数如下所示,它在按钮每次被按下时简单地打印一条信息给控制台:def say_hi(self): print hi there, everyone!最后我们提供了一些脚本级的代码来创建一个Tk root部件,和一个App类的实例(这个实例使用这个root部件作为它的父亲):root = Tk()app = App(root)root

10、.mainloop()root.mainloop()调用root部件的mainloop方法。它进入Tk事件循环,这个应用程序将处于这个Tk事件循环之中直到quit方法被调用(点击QUIT按钮),或窗口被关闭。 关于窗口部件引用在第二个例子中,frame部件被存储在一个名为frame的局部变量中,而button部件则存储在两个实例的属性组中。这是否隐藏着一个严重的问题呢:当 _init_ 函数返回并且frame变量超出了范围会发生什么呢?。不 要紧;这儿确实没有必要去保持对窗口部件实例的引用。Tkinter自动维护一个窗口部件树(通过对象实例的master和children属性),因 此,当应用

11、程序的最后一个引用消失时窗口部件不会消失;窗口部件必须显示的用destroy方法销毁。但是如果你希望在窗口部件被创建以后用它来做一些事 情,你最好保持对你自己的窗口部件实例的引用。注意如果你不需要保持对一个窗口部件的引用,你可以用单独的一行来创建和pack(包装)它,如下:Button(frame, text=Hello, command=self.hello).pack(side=LEFT)不要存储这个操作的结果,当你试图去用这个结果时你会很失望(因为pack方法返回None)。为小心起见,最好将将pack(包装)分开,如下所示:w = Button(frame, text=Hello, c

12、ommand=self.hello) w.pack(side=LEFT) 关于窗口部件的名字另 一个容量引起混淆的方面(尤其是使用Tcl编程Tk的有一些经验的人)是Tinter的窗口部件的名字的概念。在Tcl中,你必须显示的命名每一个窗口部 件。例如下面的Tcl命令创建一个名为ok的按钮作为名为dialog的窗口部件的孩子(dialog又是root窗口的孩子):button .dialog.ok相应的Tkinter调用将如下:ok = Button(dialog)在 这个Tkinter案例中,ok和dialog是对窗口部件实例的引用,不是窗口部件实际的名字。因为Tk自身需要这些名字,Tkint

13、er自动为每个新 窗口部件赋一个唯一的名字。在这个Tkinter案例中,这个dialog的名字或许类似.,并且button可能 是.。如果你希望得到一个Tkinter窗口部件的完整名字,你可以在这个窗口部件实例上使用str函数: print str(ok).如果你确实需要为一个窗口部件指定一个名字,你可以在你创建这个窗口部件时使用name选项。你这么做的原因可能是你需要和用Tcl写的代码接口。下面的例子将产生一个名为.dialog.ok的窗口部件(如果你忘了命名dialog,那么名字可能类似.ok):ok = Button(dialog, name=ok)为了避免与此同时Tkinter的名字机

14、制相冲突,不要使用只包含数字的名字。同样注意name是只能创建一次的选项;一旦你创建了这个部件的名字,那么你就不能再改变它的名字了。 Tkinter类之窗口部件类Tkinter支持15个核心的窗口部件,这个15个核心窗口部件类列表如下:窗口部件及说明:Button:一个简单的按钮,用来执行一个命令或别的操作。Canvas:组织图形。这个部件可以用来绘制图表和图,创建图形编辑器,实现定制窗口部件。Checkbutton:代表一个变量,它有两个不同的值。点击这个按钮将会在这两个值间切换。Entry:文本输入域。Frame:一个容器窗口部件。帧可以有边框和背景,当创建一个应用程序或dialog(对话)版面时,帧被用来组织其它的窗口部件。Label:显示一个文本或图象。Listbox:显示供选方案的一个列表。listbox能够被配置来得到radiobutton或checklist的行为。Menu:菜单条。用来实现下拉和弹出式菜单。Menubutton:菜单按钮。用来实现下拉式菜单。Message:显示一文本。类似label窗口部件,但是能够自动地调整文本到给定的宽度或比率。Radiobutton:代表一个变量,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号