Administrator
发布于 2026-06-21 / 3 阅读
0
0

Python Tkinter 简易 GUI 窗口程序开发教程

一、前言

前面我们写的所有程序都只能在黑框控制台运行,交互不够直观。Python 自带Tkinter图形界面库,无需额外安装,快速制作带窗口、按钮、输入框的可视化工具。

本篇从零搭建 GUI 程序,覆盖窗口、标签、输入框、按钮、弹窗等基础组件,最后把上一篇批量重命名脚本封装成可视化工具

二、Tkinter 基础窗口创建

Tkinter 是 Python 标准库,直接 import 导入即可使用

python

运行

# 导入图形库所有组件
from tkinter import *
# 弹窗提示框
from tkinter import messagebox

# 1. 创建主窗口
root = Tk()
# 设置窗口标题
root.title("Python文件批量重命名工具")
# 设置窗口大小:宽x高
root.geometry("600x400")

# 2. 消息循环(窗口持续显示,必须写在最后)
root.mainloop()

运行后会弹出空白窗口,mainloop()负责监听鼠标点击、输入等操作。

三、常用基础组件讲解

1. Label 文字标签(展示静态文字)

python

运行

from tkinter import *
root = Tk()
root.geometry("500x300")

# 创建文字标签
label = Label(root, text="批量文件重命名工具", font=("微软雅黑",16))
# 布局放置组件 pack自动居中排列
label.pack(pady=20)

root.mainloop()
  • font=("字体",字号) 修改文字样式

  • pady=20 上下外边距,padx左右边距

2. Entry 单行输入框(接收用户文字输入)

python

运行

from tkinter import *
root = Tk()
root.geometry(500,200)

Label(root,text="文件夹路径:").pack()
# 创建输入框,宽度50字符
path_input = Entry(root, width=50)
path_input.pack(pady=5)

# 获取输入框内容:path_input.get()
root.mainloop()

3. Button 按钮(点击触发函数)

python

运行

from tkinter import *
root = Tk()

def click_func():
    # 点击按钮执行的代码
    print("按钮被点击了!")

# 创建按钮,绑定点击函数
btn = Button(root, text="点击测试", command=click_func)
btn.pack(pady=30)

root.mainloop()

核心参数command=函数名,点击按钮自动执行对应函数。

4. messagebox 弹窗提示

python

运行

from tkinter import *
from tkinter import messagebox

root = Tk()

def show_msg():
    # 信息弹窗
    messagebox.showinfo("提示","操作执行成功!")
    # 错误弹窗
    # messagebox.showerror("错误","文件夹不存在")
    # 确认弹窗
    # res = messagebox.askyesno("确认","是否开始重命名?")

Button(root,text="弹出提示",command=show_msg).pack()
root.mainloop()

四、布局三种方式(简单项目优先 pack)

  1. pack():自动上下 / 左右排列,适合简单页面

  2. grid():表格网格布局,多行多列整齐排版

  3. place():指定 x、y 坐标精准定位,复杂界面使用

五、完整实战:可视化批量重命名 GUI 工具

整合上一篇 os 批量重命名逻辑 + Tkinter 图形界面,可直接运行使用

python

运行

import os
from tkinter import *
from tkinter import messagebox

# 批量重命名核心函数
def batch_rename():
    # 获取输入框内容
    folder = path_entry.get().strip()
    prefix = prefix_entry.get().strip()
    filter_ext = ext_entry.get().strip()

    # 输入校验
    if not folder:
        messagebox.showerror("输入错误","请填写文件夹路径!")
        return
    if not prefix:
        messagebox.showerror("输入错误","请填写文件前缀名称!")
        return

    # 拆分过滤后缀,转为列表
    allow_suffix = None
    if filter_ext:
        allow_suffix = [i.strip() for i in filter_ext.split(",")]

    try:
        if not os.path.exists(folder):
            raise FileNotFoundError
        file_list = os.listdir(folder)
        count = 1
        for filename in file_list:
            old_path = os.path.join(folder, filename)
            if not os.path.isfile(old_path):
                continue
            suffix = os.path.splitext(filename)[1]
            # 过滤指定后缀
            if allow_suffix and suffix not in allow_suffix:
                continue
            new_name = f"{prefix}_{count:02d}{suffix}"
            new_path = os.path.join(folder, new_name)
            os.rename(old_path, new_path)
            count += 1
        messagebox.showinfo("执行完成", f"成功重命名 {count-1} 个文件!")
    except FileNotFoundError:
        messagebox.showerror("路径错误","目标文件夹不存在,请检查路径!")
    except Exception as e:
        messagebox.showerror("运行异常", f"程序出错:{str(e)}")

# 搭建GUI界面
window = Tk()
window.title("文件批量重命名工具 V1.0")
window.geometry("620x320")

# 标题
Label(window, text="Python批量文件重命名工具", font=("微软雅黑",16)).pack(pady=12)

# 文件夹路径输入
Label(window, text="目标文件夹路径:").pack()
path_entry = Entry(window, width=70)
path_entry.pack(pady=4)

# 文件前缀输入
Label(window, text="自定义文件前缀:").pack()
prefix_entry = Entry(window, width=70)
prefix_entry.pack(pady=4)

# 过滤后缀输入
Label(window, text="仅处理指定后缀(多个用逗号分隔,留空处理全部文件,例:.jpg,.png):").pack()
ext_entry = Entry(window, width=70)
ext_entry.pack(pady=4)

# 执行按钮
start_btn = Button(window, text="开始批量重命名", bg="#409EFF", fg="white", font=("微软雅黑",12), command=batch_rename)
start_btn.pack(pady=18)

# 启动窗口循环
window.mainloop()

使用操作说明

  1. 目标文件夹路径:填写本地文件夹完整路径,如r"C:\Users\XXX\Desktop\图片"

  2. 自定义文件前缀:重命名后的文件开头文字,如风景

  3. 仅处理指定后缀:填写.jpg,.png只修改图片,留空则修改文件夹全部文件

  4. 点击按钮自动执行,完成弹出成功提示

六、新手常见问题

  1. Tkinter 导入报错:Linux 系统需手动安装sudo apt install python3-tk,Windows/Mac 自带无需安装

  2. 点击按钮无反应:检查command绑定函数名是否写错,不要加括号

  3. 输入内容获取为空:使用.strip()去除前后空格

  4. 窗口组件重叠:调整pack(pady=数值)增加组件间距

七、下期预告

下一篇:Python requests 爬虫:静态网页数据爬取入门,实现网页文字、图片信息抓取。


评论