这篇博客将简要地介绍Python的Tkinter模块,主要供没了解过Tkinter模块的人进行了解,后续还会贴出具体的教程,让初学者也能进行GUI编程!
Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
——摘编自Python GUI 编程(Tkinter) | 菜鸟教程
在编程软件(我用的是VScode)中,按住Ctrl键的同时点击我们程序文本中的tkinter字样,可以跳转到tkinter模块的__init__.py文件,让我们来看看那里面是怎么说的
Tkinter provides classes which allow the display, positioning and control of widgets. Toplevel widgets are Tk and Toplevel. Other widgets are Frame, Label, Entry, Text, Canvas, Button, Radiobutton,Checkbutton, Scale, Listbox, Scrollbar, OptionMenu, Spinbox, LabelFrame and PanedWindow.
Properties of the widgets are specified with keyword arguments.Keyword arguments have the same name as the corresponding resource under Tk.
Widgets are positioned with one of the geometry managers Place, Pack or Grid. These managers can be called with methods place, pack, grid available in every Widget.
Actions are bound to events by resources (e.g. keyword argument command) or with the method bind.
【以下是百度翻译的结果】
Tkinter提供了允许显示、定位和控制控件的类。Toplevel控件是Tk和Toplevel。其他控件包括框架、标签、输入、文本、画布、按钮、单选按钮、复选按钮、范围、列表框、滚动条、选项菜单、Spinbox、LabelFrame和PanedWindow。
控件的属性由关键字参数指定。关键字参数与Tk下的相应资源具有相同的名称。
控件通过一个几何管理器Place、Pack或Grid进行定位。这些管理器可以通过每个控件中可用的方法place、pack和grid进行调用。
操作通过资源(例如:关键字参数命令)或方法绑定到事件。
Tkinter模块提供了2种Toplevel控件和许多基本控件,目前已包括15种,每种控件都有很多属性
Toplevel控件 | 控件名称 | 描述 |
Tk | 容器控件 | 提供一个对话框作为主窗口 |
Toplevel | 容器控件 | 提供一个单独的对话框作为子窗口(弹出新窗口) |
基本控件 | 控件名称 | 描述 |
Frame | 框架控件 | 显示一个区域,作为其他基本控件的容器 |
Label | 标签控件 | 显示文本和位图 |
Entry | 输入控件 | 可以输入并显示文本 |
Text | 文本控件 | 显示多行文本 |
Canvas | 画布控件 | 显示图片、图形(如线条)或文本 |
Button | 按钮控件 | 显示一个带有功能的按钮 |
Radiobutton | 单选按钮控件 | 显示一个带有功能的单选按钮 |
Checkbutton | 复选按钮控件 | 显示一个带有功能的多选按钮 |
Scale | 范围控件 | 显示一个数值刻度,为输出限定范围的数字区间 |
Listbox | 列表框控件 | 显示一个字符串列表 |
Scrollbar | 滚动条控件 | 当内容超过可视化区域时使用,如列表框 |
OptionMenu | 选项菜单控件 | 显示一个位于窗口顶部的菜单栏 |
Spinbox | 输入控件 | 与Entry输入控件类似,但是可以指定输入范围值 |
LabelFrame | 容器控件 | 简单的容器控件,常用与复杂的窗口布局 |
PanedWindow | 窗口布局管理插件 | 可以包含一个或者多个子控件 |
Tkinter模块提供了3中几何管理方法,包括Pack、Grid和Place
几何管理方法 | 名称 | 描述 |
pack | 布局 | 比较简单,但不够精确,一般用于简单的GUI编程 |
grid | 网格 | 一般用于网格较多的GUI编程 |
place | 位置 | 可以精确地放置控件,但需要控件在对话框或其他容器中的坐标 |
这里我列举几个我用Python Tkinter模块编写的简单程序
【图片展示】
【源代码】
from tkinter import *#引入tkinter模块【必要步骤】 root = Tk()#创建窗口并赋值到root变量(给这个窗口命名)【必要步骤】 root.title('My Window')#给窗口加一个标题 root.geometry('960x480+150+100')#设置窗口弹出的位置 label1 = Label(root,text='Penta Kill\n~五连绝世~',font=('华文新魏',60),fg='orange',bg='skyblue')#创建一个标签控件 label1.place(width=480,height=240,x=240,y=120)#放置标签 root.mainloop()#让窗口进入事件循环【必要步骤】
【图片展示】
【源代码】关注我,后期我会贴出来
示例三【五子棋】
【图片展示】
【源代码】关注我,后期我会贴出来
【以上程序均只需用Tkinter模块就可以产生,无需Pygame等其他模块】