Python Tkinter
Python Tkinter
Tkinter介绍
-
Python标准库提供的tkinter用于创建图形用户界面的桌面的应用。基于Python开发桌面应用与Tkinter是一个复杂的任务
-
Tkinter创建顶层窗口可以通过以下步骤:
- 引入Python的Tkinter模块。
- 创建应用程序的主窗口。
- 在窗口内添加小工具 ( 如标签、按钮、帧等)。
- 呼叫主事件循环,以便捕获在用户的计算机屏幕上的动作。
-
示例
from tkinter import *
#创建一个主窗口
root = Tk()
#进入事件主循环
top.mainloop()
- 输出:

Tkinter Widgets控件
- Tkinter有各种不同的部件,如:按钮、画布、checkbutton 、条目等。使用 Python 构建应用程序的 GUI 界面。
| Widget | 描述 |
|---|---|
| Button | 按钮:用户增加各种按钮 |
| Entry | 输入控件:显示单行文本域,一般用户接受用户输入值 |
| Frame | 框架:在屏幕上显示一个矩形区域,多用来作为容器,可用放入另外的控件 |
| Label | 标签:可以显示文本和位图 |
| Text | 文本:它不同于输入,因为它提供了一个多行文本域的用户,使得用户能够写入文本和编辑文本 |
| Menu | 菜单:显示菜单栏,下来菜单栏和弹出菜单栏 |
| Menubutton | 菜单按钮:该文本框用于显示给用户的菜单项目 |
| MessageBox | 消息框:用来显示消息框的桌面应用程序 |
| Message | 消息:消息控件用于显示消息给用户,与 label 比较类似 |
| ListBox | 列表框:显示一个字符串列表给用户 |
| Canvas | 画布:用于在窗口上绘制图形,显示图形元素,如线条或文本 |
| Radiobutton | 单选按钮:不同于将 RadioButton checkbutton 。这里向用户提供各种选项,并且用户可以只选择其中一个选项。 |
| Chenkbutton | 多选框:用于显示多选框的工具 |
| Scale | 范围控件:显示一个数值刻度,为输出限定范围的数字区间 |
| Scrollbar | 滚动条:它向用户提供滚动条 ,当内容超过可视化区域时使用,用户可以滚动窗口 |
| Toplevel | 容器:它被用于创建独立窗口,提供一个单独的对话框 |
| Spinbox | 输入:与Entry类似,但是可以指定输入范围值 |
| PanedWindow | 窗口布局管理:它就像一个容器 , 包含水平或垂直控件的窗格 |
| LabelFrame | 容器控件:一个常用与复杂的窗口布局 |
Python Tkinter 布局管理器
- MayaVi 所指定几何形状的方法,所述微件的显示表示。Python Tkinter 布局管理器提供了以下方法:
- The pack() method
- The grid() method
- The place() method
- Python Tkinter pack() 方法
-
在 pack()的 Widget 小工具中用于组织块。控件添加到该位置的应用使用 Python 的 pack() 方法可以通过使用各种方法调用中指定的选项,然而,这些控制器通常更少被添加在非组织行为方式。
-
语法:
widget.pack(options) -
可能选项的列表 , 可以通过在pack()如下
- expand :如果将扩展设置为 true 时, 控件将会展开以填充任何空间。
- Fill :默认情况下,填充设置为 NONE。然而,我们可以将其设置为在 X 或 Y 以确定该控件是否包含任何额外的空间。
- side:它代表了在父控件将被放置在窗口上(LEFT|RIGHT|TOP|BOTTOM)。
-
示例
from tkinter import *
root = Tk()
redbutton = Button(root, text = "Red", fg = "red")
redbutton.pack( side = LEFT)
greenbutton = Button(root, text = "Black", fg = "black")
greenbutton.pack( side = RIGHT )
bluebutton = Button(root, text = "Blue", fg = "blue")
bluebutton.pack( side = TOP )
blackbutton = Button(root, text = "Green", fg = "red")
blackbutton.pack( side = BOTTOM)
root.mainloop()
- 输出

- Python Tkinter grid() (网格)方法
- 网格经理组织 (几何) 的微件的列表形式。我们可以指定行和列的选项中的方法调用。我们还可以指定列的宽度 (跨度) 或高度 (rowspan) 的微件,这是一个更有组织的方式来将微件的 Python 应用。在使用网格 (语法)
- 语法
widget.grid(选项)
- 常用的选项列表
| 选项 | 描述 |
|---|---|
| row | 行:行的数量。最上面的行表示为 0 |
| column | 列:在数量栏的控件将被放置。最左边的列表示为 0 |
| rowspan | 跨行。行的数量,height 被扩大 |
| columnspan | 跨列。它代表了最高数目的列,width被扩大 |
| ipadx、ipady | 它表示像素对微件 Widget 垫内的边界 |
| padx 、pady | 它表示像素对之外的 Widget 窗件的边界 |
| 粘性 | 如果小区带宽大于一个微件 , 则粘性是用于指定控件的位置。它可以是级联的字母表示该位置的粘性的小工具。它可以是 N 、 E 、 W 、 S 、 NE 、 NW 、南北向、东西向 , ES |
- 示例
from tkinter import *
root = Tk()
name = Label(root, text = "Name").grid(row = 0, column = 0)
e1 = Entry(root).grid(row = 0, column = 1)
password = Label(root, text = "Password").grid(row = 1, column = 0)
e2 = Entry(root).grid(row = 1, column = 1)
submit = Button(root, text = "Submit").grid(row = 4, column = 0)
root.mainloop()
- 输出:

- Tkinter Python place() 方法
- place()组织几何形状的小部件的特定 X 和 Y 坐标
- 语法
widget.place(options)
- 常用选项列表
| 选项 | 描述 |
|---|---|
| X、Y | 它是指在水平和垂直像素的偏移 |
| width、heigth | 它是指高度和宽度中的像素 |
- 示例
from tkinter import *
root = Tk()
root.geometry("400x250")
name = Label(root, text = "Name").place(x = 30,y = 50)
email = Label(root, text = "Email").place(x = 30, y = 90)
password = Label(root, text = "Password").place(x = 30, y = 130)
e1 = Entry(root).place(x = 80, y = 50)
e2 = Entry(root).place(x = 80, y = 90)
e3 = Entry(root).place(x = 95, y = 130)
root.mainloop()
- 输出


浙公网安备 33010602011771号