tkinter的使用:
一、最基本的创建一个窗口:
from Tkinter import *
root = Tk() # 创建窗口,即对Tk进行实例化
root.mainloop() # 进入循环
----此时后面有个黑乎乎的控制台窗口,如果我们想双击之后直接看到我们创建的这个窗口(即相当于exe文件),而不像看到这个命令行窗口,那么可以把demo1.py修改后缀名为demo1.pyw,并且用Python安装目录下的pythonw.exe打开即可。
二、修改窗口的标题:
----官方对于该类的描述是“代表绝大多数应用程序主窗口的高层空间,它会和一个Tcl解释器相关联”,它继承自两个类,一个是Misc,另一个是Wm,我们这里使用的mianloop方法,就是从Misc里面继承来的。
from Tkinter import *
root = Tk() # 创建窗口,即对Tk进行实例化
root.wm_title('title') # 创建标题
root.mainloop() # 进入循环
三、认识新的组件——标签:
-----
认识新组件---标签 ***********组件**************
(1)如果大家习惯了windows编程,那么对于“控件”一次一定不会陌生,其实呢,组件和控件是一回事,在本书中我们不加以区分。
(2).组件的英文表述是“widget”,我们常见的按钮,文本框等等都可以当做组件。
(3).我们可以为一个窗口增加若干组件来丰富该窗口的功能,我们往往需要指定这个组件的大小和位置,我们还需要通过编程的方式来指定该组件能完成什么功能。 **********标签空间*****************
(1).所谓“标签”,就是贴在物品前面的一个简短的说明,它用于说明一些文字信息。
(2).标签可以说是最简单的窗口组件了,它不需要执行任何功能,只是用来显示信息。 ************增加一个Label***************
from Tkinter import *
root = Tk()
root.wm_title('title')
w1 = Label(root,text="let s learn tkinter!") # Label为一个类 在__init__中可以查看。
w1.pack() # w1为Label的实例,有text属性,用来指定文本内容
root.mainloop()
-------Lable中还有的属性有:
***********总结****************
(1).我们这一节学习了Label这个组件,它的创建使用Label这个类,实例化的时候首先要指定它的父窗口,然后就是用字典的方式设置自己的一些特征,这些特征上面都列出了,但是没有实例演示。
(2).然后使用pack方法布局上去,关于布局,我们后面会详细讲,这里我们统一使用pack就可以了。
**************多标签的应用程序***************
(1).如果我们想要多个标签,该怎么办呢?
(2)很简单,只需要声明多个标签的实例,然后分别pack到窗口上即可。
(3).下面是使用了三个标签的代码截图:
四、核心组件以及按钮讲解:
*************tkinter的核心组件************
1.在Python的tkinter中,有21个核心组件,它们提供了最基本的功能,虽然简单,因为使用频率较高,因此特别重要。
2.这21个核心组件是:Toplevel、Label、Button、Canvas、Checkbutton、Entry、Frame、LabelFrame、Listbox、Menu、Menubutton、Message、OptionMenu、 PaneWindow、Radiobutton、Scale、Scrollbar、Spinbox、Text、Bitmap、Image。
************组件的使用***********
1.各个组件都有相应的类,我们可以通过面向对象的方式去使用它们。
2.这些组件的使用也很相似,在实例化这些组件的时候,第一个参数都是父窗口或者父组件,后面跟着的就是该组件的一些属性,比如上面我们学到的Label的text属性和background属性。
3.多个组件的位置控制方式也很相似,我们可以用pack方法来进行简单的布局,具体的个例我们后面再说。
4.组件也会有些方法是共用的,比如configure方法来设置属性等等。
****************按钮****************
1.按钮也是非常重要的组件,在我的第一版教程的时候,就特别重视它,没错,按钮的重要性在于它可以执行相应的功能。
2.按钮的英文表述是“button”,它随处可见,当我们单击的时候,它可以执行相应的功能。
3.按钮在tkinter中有一个类专门负责它,叫做“Button”,该类也非常简短。
*************按钮与功能的绑定**************
1.上文说到,按钮可以执行相应的功能,这里的功能我们可以理解为一个函数,或者这些功能通过相应的函数去实现。
2.绑定方式通常有如下几种:第一种,在按钮组件被声明的时候用command属性声明,command属性接受一个函数名,注意函数名不要加双引号。第二种,使用bind方法,该方法是Misc这个类的一个方法,下面我们仔细讲解。
*********第一种方法绑定事件**************
1.我们要完成的功能是我们按下这个按钮的时候,就会在窗口上增加一个Label,它显示“我爱python”。
2.代码示例:
3.功能说明(一开始是只有一个按钮的,我点击一下,就会在这个窗口上多一个标签,点击了三次之后,便会显示3个I love python.
------这里的xinlabel函数中用了全局变量root,需要注意,否则无法使用。
***********第二种方式绑定事件***************
下面用第二种方法绑定事件,完成同样的操作
结果与上面是一样的。
1.使用bind函数的时候,第二个参数是一个函数名,该函数必须接受一个参数,即表示该事件。
2.我通常习惯用event来表示,如果我们调用的函数不接受任何参数,则会报错如下:TypeError: xinlabel() takes no arguments (1 given)。
***********设置属性*****************
1.下面我们可以设置一些属性,这些东西的学习不用过于心急,随着我的大量的代码示例,大家会接触不少的。
2.比如我们可以设置背景色,这里直接设置属性,代码截图: