Python+Tkinter制作专属图形化界面

Elena
Elena
发布时间:2026-10-16| 5人浏览过
原创

本文详细介绍如何使用Python标准库Tkinter快速构建图形用户界面。内容涵盖窗口创建、大小与位置设置、标题定义,以及Label、Entry和Button等核心控件的添加与网格布局定位,帮助开发者掌握基础GUI编程技能。

介绍

本期案例旨在指导大家制作一个专属的GUI图形化界面,该界面可用于设计签名(效果见下图)。这个功能是否有趣?你是否渴望学习?鉴于篇幅限制,今天我们将重点详细讲解Tkinter的具体用法。虽然通常不打算深入讲解这一基础知识,但考虑到希望深入学习的朋友可能觉得内容不够详尽,因此特别补充了这一章节。

tkinter的简单应用

Tkinter是Python的标准GUI库。利用Python和Tkinter,我们可以快速创建GUI应用程序。此外,常见的GUI库还有PyQt5,了解这两个常用库即可,若你有意深入学习,可进一步探索。由于Tkinter属于Python标准库,无需通过pip安装,直接导入即可使用。

显示窗口

调用root.mainloop()以显示窗口;

窗口默认会显示在电脑屏幕的左上角,且尺寸非常小(后续将对此进行改进);

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 显示窗口
root.mainloop()
"""
注意到:该窗口默认的显示位置在哪里,观察我下面的截图。
窗口默认显示在整个电脑屏幕的左上角,并且窗口大小特别小。
"""

运行结果如下:

注意:上述两行代码中,首先实例化一个窗口对象,随后调用方法展示该窗口,使其真正显示出来。接下来的操作均针对此窗口进行优化,请注意:这些优化代码需放置在这两行核心代码之间。

设置窗口大小

使用root.geometry("600x400")调整窗口的大小;

该方法传入的参数格式为“宽x高”,需特别注意此处的乘号是小写英文字母“x”,而非表示数学乘法的星号“*”;

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450")

# 显示窗口
root.mainloop()

运行结果如下:

调整窗口位置(使用的是同一个方法)

使用root.geometry("600x400+374+182")调整窗口的大小及位置;

参数“374,182”表示窗口左上角顶点距离电脑屏幕左上角的坐标值。该数值可通过微信截图工具直接获取。

操作代码如下:

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")


# 显示窗口
root.mainloop()

运行结果如下:

设置窗口的标题

使用root.title()设置窗口的标题;

默认情况下,窗口标题显示为“tk”;

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 显示窗口
root.mainloop()

运行结果如下:

添加标签控件,并定位

使用Label(root,text="签名")添加标签控件

第一个参数传入已实例化的root窗口对象;第二个参数传入希望显示的标签文本内容;

仅添加标签控件是不够的,必须指定其位置后,该控件才会真正展示出来。即最后需调用grid()方法以完成标签控件的显示;

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 添加标签控件
label = Label(root)
# 定位
label.grid()

# 显示窗口
root.mainloop()

运行结果如下:

当然,你也可以想到,该方法肯定还可以修改字体样式、字体大小、字体颜色呀?具体怎么操作呢?我们接着往下面看。

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 添加标签控件
label = Label(root,text="签名",font=("宋体",25),fg="red")
"""
text参数用于指定显示的文本;
font参数用于指定字体大小和字体样式;
fg参数用于指定字体颜色;
"""
# 定位
label.grid()

# 显示窗口
root.mainloop()

运行结果如下:

添加输入框,并定位

使用Entry(root,font=("宋体",25),fg="red")添加输入框

第一个参数传入已实例化的root窗口对象;第二个参数可选,用于指定输入字体的样式和大小;第三个参数同样可选,用于指定输入字体的颜色。

同样,仅使用上述代码不会显示输入框,只有调用grid()方法并定位后,才会真正显示该输入框;

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 添加标签控件
label = Label(root,text="签名",font=("宋体",25),fg="red")
# 定位
label.grid()

# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid()

# 显示窗口
root.mainloop()

运行结果如下:

注意:显然这种摆放方式并非我们所需。我们需要进行调整,下面将专门用一个小节讲述如何调整控件的摆放位置。

调整控件的摆放位置

首先需明确,显示窗口采用的布局方式是什么?实际上是网格式布局。那么什么是网格式布局?你了解Excel表格吗?其中的一个个格子即为网格式布局方式。

了解了上述原理后,我们现在来真正调整控件的摆放位置。

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()
"""
label.grid()等价于label.grid(row=0,column=0)
"""
# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)
"""
row=0,column=1表示我们将输入框控件,放在第1行第2列的位置;
python语言中,这个下标是从0开始的。
"""
# 显示窗口
root.mainloop()

运行结果如下:

添加点击按钮

使用Button(root,text="签名设计",font=("宋体",25),fg="red")添加输入框

第一个参数传入已实例化的root窗口对象;第二个参数展示点击按钮的标签文本;第三个参数可选,用于指定按钮字体的样式和大小;第四个参数同样可选,用于指定按钮字体的颜色。

同样,仅使用上述代码不会显示输入框(此处指按钮),只有调用grid()方法并定位后,才会真正显示该点击按钮;

from tkinter import *
from tkinter import messagebox

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()

# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)

# 添加点击按钮
button = Button(root,text="签名设计",font=("宋体",25),fg="blue")
button.grid(row=1,column=1)

# 显示窗口
root.mainloop()

运行结果如下:

至此,界面已简单搭建完成。接下来需实现输入名字后,点击签名设计按钮,显示对应的签名效果,此时需借助爬虫技术。明天我们将发布该文的下篇,敬请期待。

点击按钮自定义功能

最后补充这一知识点:点击按钮后,通常希望获得反馈,因此需要自定义函数。

from tkinter import *
from tkinter import messagebox

def func():
    print("我是黄同学")

# 创建窗口:实例化一个窗口对象。
root = Tk()

# 窗口大小
root.geometry("600x450+374+182")

#  窗口标题
root.title("我的个性签名设计")

# 添加标签控件
label = Label(root,text="签名:",font=("宋体",25),fg="red")
# 定位
label.grid()

# 添加输入框
entry = Entry(root,font=("宋体",25),fg="red")
entry.grid(row=0,column=1)

# 添加点击按钮
button = Button(root,text="签名设计",font=("宋体",25),fg="blue",command=func)
button.grid(row=1,column=1)
"""
command=func表示调用最开始定义的func函数。
func函数一定要在这句代码之前,因为这里需要调用这个func函数。
"""
# 显示窗口
root.mainloop()

运行结果如下:

以上就是Python+Tkinter制作专属图形化界面的详细内容,更多关于Python Tkinter图形化界面的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。