Tkinter教程-Python Tkinter 教程
Tkinter 教程提供了 Python Tkinter 的基础和高级概念。我们的 Tkinter 教程适用于初学者和专业人士。
Python 为创建基于桌面的应用程序提供了标准库 Tkinter。
使用 Python Tkinter 开发基于桌面的应用程序并不是一项复杂的任务。可以通过以下步骤创建一个空的 Tkinter 顶层窗口。
- 导入 Tkinter 模块。
- 创建主应用程序窗口。
- 将诸如标签、按钮、框架等小部件添加到窗口。
- 调用主事件循环,以便在用户的计算机屏幕上执行操作。
示例
# !/usr/bin/python3
from tkinter import *
# 创建应用程序主窗口。
top = Tk()
# 进入事件主循环。
top.mainloop()
输出:
Tkinter 小部件
有各种小部件,如按钮、画布、复选框、输入框等,用于构建 Python 图形界面应用程序。
序号 | 小部件 | 描述 |
---|---|---|
1 | 按钮 | 按钮用于向 Python 应用程序添加各种类型的按钮。 |
2 | 画布 | 画布小部件用于在窗口上绘制画布。 |
3 | 复选框 | 复选框用于在窗口上显示复选框。 |
4 | 输入框 | 输入框小部件用于向用户显示单行文本字段。通常用于接受用户输入。 |
5 | 框架 | 框架可以定义为容器,可以向其中添加和组织其他小部件。 |
6 | 标签 | 标签是用于显示有关其他小部件的一些消息或信息的文本。 |
7 | 列表框 | 列表框小部件用于向用户显示选项列表。 |
8 | 菜单按钮 | 菜单按钮用于向用户显示菜单项。 |
9 | 菜单 | 用于向用户添加菜单项。 |
10 | 消息框 | 消息框小部件用于向用户显示消息框。 |
11 | 单选按钮 | 单选按钮与复选框不同。在这里,用户可以选择多个选项中的一个。 |
12 | 滑块 | 用于向用户提供滑块。 |
13 | 滚动条 | 它为用户提供滚动条,以便用户可以上下滚动窗口。 |
14 | 文本框 | 它与输入框不同,因为它向用户提供多行文本字段,使用户可以在其中编写文本并编辑文本。 |
15 | 顶级窗口 | 用于创建一个单独的窗口容器。 |
16 | 选项框 | 这是一个用于从值选项中选择的输入小部件。 |
17 | 分栏窗口 | 它类似于一个容器小部件,包含水平或垂直窗格。 |
18 | 标签框架 | 标签框架是充当容器的小部件。 |
19 | 消息框 | 此模块用于在基于桌面的应用程序中显示消息框。 |
Python Tkinter 几何布局
Tkinter 几何布局指定小部件在显示上的排列方法。Python Tkinter 提供了以下几何布局方法。
- pack() 方法
- grid() 方法
- place() 方法
让我们详细讨论每个方法。
Python Tkinter pack() 方法
pack() 小部件用于以块状组织小部件。使用 pack() 方法将小部件添加到 Python 应用程序中的位置可以通过在方法调用中使用的各种选项进行控制。
然而,控制较少,小部件通常以不太有组织的方式添加。
以下是使用 pack() 的语法。
语法
widget.pack(options)
以下是可以传递给 pack() 方法的可能选项列表。
- expand: 如果 expand 设置为 true,则小部件会扩展以填充任何空间。
- fill: 默认情况下,fill 设置为 NONE。但是,我们可以将其设置为 X 或 Y,以确定小部件是否包含任何额外的空间。
- size: 它表示要将小部件放置在窗口上的父级的哪一侧。
示例
# !/usr/bin/python3
from tkinter import *
# 创建父级应用程序。
parent = Tk()
redbutton = Button(parent, text="红色", fg="红色")
redbutton.pack(side=LEFT)
greenbutton = Button(parent, text="黑色", fg="黑色")
greenbutton.pack(side=RIGHT)
bluebutton = Button(parent, text="蓝色", fg="蓝色")
bluebutton.pack(side=TOP)
blackbutton = Button(parent, text="绿色", fg="红色")
blackbutton.pack(side=BOTTOM)
parent.mainloop()
输出:
Python Tkinter grid() 方法
grid() 几何管理器以表格形式组织小部件。我们可以在方法调用中指定行和列作为选项。我们还可以指定小部件的列跨度(宽度)或行跨度(高度)。
这是一种更有组织的方式,用于将小部件放置到 Python 应用程序中。以下是使用 grid() 的语法。
语法
widget.grid(options)
以下是可以在 grid() 方法内部传递的可能选项列表。
- column: 小部件要放置在其中的列号。最左边的列由 0 表示。
- columnspan: 小部件的宽度。它表示要扩展的列数。
- ipadx, ipady: 它表示在小部件的边界内部填充小部件的像素数。
- padx, pady: 它表示在小部件的边界外部填充小部件的像素数。
- row: 小部件要放置在其中的行号。最上面的行由 0 表示。
- rowspan: 小部件的高度,即小部件扩展到的行数。
- sticky: 如果单元格大于小部件,则 sticky 用于指定小部件在单元格内的位置。它可能是代表小部件位置的粘性字母的连接。可能是 N、E、W、S、NE、NW、NS、EW、ES。
示例
# !/usr/bin/python3
from tkinter import *
parent = Tk()
name = Label(parent, text="姓名").grid(row=0, column=0)
e1 = Entry(parent).grid(row=0, column=1)
password = Label(parent, text="密码").grid(row=1, column=0)
e2 = Entry(parent).grid(row=1, column=1)
submit = Button(parent, text="提交").grid(row=4, column=0)
parent.mainloop()
输出:
Python Tkinter place() 方法
place() 几何管理器将小部件组织到特定的 x 和 y 坐标上。
语法
widget.place(options)
以下是可能的选项列表。
- Anchor: 它表示小部件在容器内的确切位置。默认值(方向)为 NW(左上角)
- bordermode: 边框类型的默认值为 INSIDE,表示忽略父级内部的边框。另一个选项是 OUTSIDE。
- height, width: 它表示以像素为单位的高度和宽度。
- relheight, relwidth: 它表示介于 0.0 和 1.0 之间的浮点数,表示父级高度和宽度的分数。
- relx, rely: 它表示介于 0.0 和 1.0 之间的浮点数,表示水平和垂直方向上的偏移量。
- x, y: 它表示以像素为单位的水平和垂直偏移量。
示例
# !/usr/bin/python3
from tkinter import *
top = Tk()
top.geometry("400x250")
name = Label(top, text="姓名").place(x=30, y=50)
email = Label(top, text="电子邮件").place(x=30, y=90)
password = Label(top, text="密码").place(x=30, y=130)
e1 = Entry(top).place(x=80, y=50)
e2 = Entry(top).place(x=80, y=90)
e3 = Entry(top).place(x=95, y=130)
top.mainloop()
输出:
先决条件
在学习 Tkinter 之前,您必须具备基本的 Python 知识。
受众
我们的 Python Tkinter 教程旨在帮助初学者和专业人士。
问题
我们保证您在这个 Tkinter 教程中不会遇到任何问题。但如果有任何错误,请在联系表单中发布问题。