Tkinter是什么:

 Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。

1. 创建主窗口及Label部件(标签)创建使用

Python中tkinter中类 python的tkinter_Python中tkinter中类

测试效果:

Python中tkinter中类 python的tkinter_ipad_02

2.Button窗口部件

简单说明:

  Button(按钮)部件是一个标准的Tkinter窗口部件,用来实现各种按钮。按钮能够包含文本或图象,并且你能够将按钮与一个Python函数或方法相关联。当这个按钮被按下时,Tkinter自动调用相关联的函数或方法。

  如何创建:

普通的按钮很容易被创建,仅仅指定按钮的内容(文本、位图、图象)和一个当按钮被按下时的回调函数即可:

b = tk.Button(window, text="hit me", command=hit_me)

示例代码:

Python中tkinter中类 python的tkinter_ipad_03

 测试效果:

Python中tkinter中类 python的tkinter_ide_04

Python中tkinter中类 python的tkinter_ipad_05

Python中tkinter中类 python的tkinter_ide_06

3. Entry窗口部件

单说明:  

  Entry是tkinter类中提供的的一个单行文本输入域,用来输入显示一行文本,收集键盘输入(类似 HTML 中的 text)。

  什么时候用:

  需要用户输入用户信息时,比如我们平时使用软件、登录网页时,用户交互界面让我们登录账户信息等时候可以用到。

 示例代码:

Python中tkinter中类 python的tkinter_示例代码_07

测试效果:

Python中tkinter中类 python的tkinter_ide_08

4. Text窗口部件

简单说明:  

  Text是tkinter类中提供的的一个多行文本区域,显示多行文本,可用来收集(或显示)用户输入的文字(类似 HTML 中的 textarea),格式化文本显示,允许你用不同的样式和属性来显示和编辑文本,同时支持内嵌图象和窗口。

  什么时候用:

  在需要显示编辑用户、产品多行信息时,比如显示用户详细描述文字,产品简介等等,支持随时编辑。

  示例代码:

Python中tkinter中类 python的tkinter_示例代码_09

Python中tkinter中类 python的tkinter_ide_10

5. Listbox窗口部件

  简单说明:  

  Text是tkinter类中提供的的列表框部件,显示供选方案的一个列表。listbox能够被配置来得到radiobutton或checklist的行为。

  什么时候用:

  在有一个很多内容选项组成的列表提供用户选择时会用到。

  示例代码:

Python中tkinter中类 python的tkinter_ide_11

  测试效果:

Python中tkinter中类 python的tkinter_ipad_12

6. Radiobutton窗口部件

  简单说明:  

  Radiobutton:代表一个变量,它可以有多个值中的一个。点击它将为这个变量设置值,并且清除与这同一变量相关的其它radiobutton。

  什么时候用:

  在有一个很多内容选项组成的选项列表提供用户选择时会用到,用户一次只能选择其中一个,不能多选。

  示例代码:

Python中tkinter中类 python的tkinter_Python中tkinter中类_13

 测试效果:

Python中tkinter中类 python的tkinter_Python中tkinter中类_14

7. Checkbutton窗口部件

  简单说明:  

  Checkbutton:代表一个变量,它有两个不同的值。点击这个按钮将会在这两个值间切换,选择和取消选择。

  什么时候用:

  在有一个很多内容选项组成的选项列表提供用户选择时会用到,用户一次可以选择多个。

  示例代码:

Python中tkinter中类 python的tkinter_示例代码_15

测试效果:

Python中tkinter中类 python的tkinter_Python中tkinter中类_16

Python中tkinter中类 python的tkinter_Python中tkinter中类_17

Python中tkinter中类 python的tkinter_Python中tkinter中类_18

Python中tkinter中类 python的tkinter_ide_19

8. Scale窗口部件

  简单说明:  

  Scale: 尺度(拉动条),允许你通过滑块来设置一数字值。

  什么时候用:

  在需要用户给出评价等级,或者给出一个评价分数,或者拉动滑动条提供一个具体的数值等等。

  示例代码:

Python中tkinter中类 python的tkinter_Python中tkinter中类_20

测试效果:

Python中tkinter中类 python的tkinter_示例代码_21

Python中tkinter中类 python的tkinter_示例代码_22

9.Frame 窗口部件

  简单说明:  

  Frame:框架,用来承载放置其他GUI元素,就是一个容器,是一个在 Windows 上分离小区域的部件, 它能将 Windows 分成不同的区,然后存放不同的其他部件. 同时一个 Frame 上也能再分成两个 Frame, Frame 可以认为是一种容器.

  什么时候用:

  在比如像软件或网页交互界面等,有不同的界面逻辑层级和功能区域划分时可以用到,让交互界面逻辑更加清晰。

  示例代码:

Python中tkinter中类 python的tkinter_ipad_23

 测试效果:

Python中tkinter中类 python的tkinter_示例代码_24

10.messageBox窗口部件

  简单说明:  

  messageBox:消息框,用于显示你应用程序的消息框。其实这里的messageBox就是我们平时看到的弹窗。 我们首先需要定义一个触发功能,来触发这个弹窗,这里我们就放上以前学过的button按钮,通过触发功能,调用messagebox吧,点击button按钮就会弹出提示对话框。下面给出messagebox提示信息的几种形式:

 

tkinter.messagebox.showinfo(title="hi",message="你好")
tkinter.messagebox.showwarning(title="warning",message="警告")
tkinter.messagebox.showerror(title="error",message="错误")
tkinter.messagebox.askokcancel(title="Hi",message="确认吗")
tkinter.messagebox.askquestion(title="question",message="是这样吗")
tkinter.messagebox.askyesno(title="yesno",message="ok or no")
tkinter.messagebox.askyesnocancel(title="yesnocancel",message="yes no cancel")

  什么时候用:

  在比如像软件或网页交互界面等,有不同的界面逻辑层级和功能区域划分时可以用到,让交互界面逻辑更加清晰。

  示例代码:

Python中tkinter中类 python的tkinter_Python中tkinter中类_25

测试效果:

Python中tkinter中类 python的tkinter_Python中tkinter中类_26

Python中tkinter中类 python的tkinter_示例代码_27

Python中tkinter中类 python的tkinter_示例代码_28

Python中tkinter中类 python的tkinter_Python中tkinter中类_29

Python中tkinter中类 python的tkinter_ide_30

Python中tkinter中类 python的tkinter_ide_31

Python中tkinter中类 python的tkinter_Python中tkinter中类_32

11. Canvas窗口部件

  简单说明:  

  Canvas:画布,提供绘图功能(直线、椭圆、多边形、矩形) 可以包含图形或位图,用来绘制图表和图,创建图形编辑器,实现定制窗口部件。

  什么时候用:

  在比如像用户交互界面等,需要提供设计的图标、图形、logo等信息是可以用到画布。

  示例代码:

Python中tkinter中类 python的tkinter_Python中tkinter中类_33

测试效果:

Python中tkinter中类 python的tkinter_示例代码_34

图片锚定点位置参数图:

Python中tkinter中类 python的tkinter_ipad_35

12. 窗口部件三种放置方式pack/grid/place

1. Grid:The Grid Geometry Manager

  grid 是方格, 所以所有的内容会被放在这些规律的方格中。例如:

for i in range(3):
    for j in range(3):
        Label(window,text=3).grid(row=i,column=j, padx=10, pady=10, ipadx=20, ipady=20)

 

  以上的代码就是创建一个三行三列的表格,其实 grid 就是用表格的形式定位的。这里的参数 row 为行,column 为列,padx 就是单元格左右间距,pady 就是单元格上下间距,ipadx是单元格内部元素与单元格的左右间距,ipady是单元格内部元素与单元格的上下间距。

示例代码:

Python中tkinter中类 python的tkinter_ipad_36

 测试效果:

Python中tkinter中类 python的tkinter_Python中tkinter中类_37

2. Pack:The Pack Geometry Manager

   我们常用的pack(), 他会按照上下左右的方式排列.例如:

Label(window,text="hello",fg="red").pack(side="left")
Label(window,text="hello",fg="red").pack(side="right")
Label(window,text="hello",fg="red").pack(side="top")
Label(window,text="hello",fg="red").pack(side="bottom")

 

   示例代码:

Python中tkinter中类 python的tkinter_ipad_38

测试效果:

Python中tkinter中类 python的tkinter_ipad_39

3. Place:The Place Geometry Manager

   再接下来我们来看place(), 这个比较容易理解,就是给精确的坐标来定位,如此处给的(50, 100),就是将这个部件放在坐标为(x=50, y=100)的这个位置, 后面的参数 anchor='nw',就是前面所讲的锚定点是西北角。例如:

tk.Label(window, text='Pl', font=('Arial', 20), ).place(x=50, y=100, anchor='nw')

  示例代码:

Python中tkinter中类 python的tkinter_ide_40

测试效果:

Python中tkinter中类 python的tkinter_ipad_41