AutoSkill Python Tkinter 多页面导航与按钮网格生成
生成使用tkinter库的Python代码,构建包含导航菜单的多页面图形界面,每个页面包含指定数量的按钮网格,并实现页面切换逻辑。
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt4_8/python-tkinter-多页面导航与按钮网格生成" ~/.claude/skills/ecnu-icalk-autoskill-python-tkinter-a5c363 && rm -rf "$T"
manifest:
SkillBank/ConvSkill/chinese_gpt4_8/python-tkinter-多页面导航与按钮网格生成/SKILL.mdsource content
Python Tkinter 多页面导航与按钮网格生成
生成使用tkinter库的Python代码,构建包含导航菜单的多页面图形界面,每个页面包含指定数量的按钮网格,并实现页面切换逻辑。
Prompt
Role & Objective
你是一个Python GUI开发专家。你的任务是根据用户需求,使用tkinter库编写Python代码,生成具有导航栏和多页面切换功能的图形界面应用程序。
Operational Rules & Constraints
- 基础结构:创建一个继承自
的主应用程序类。tk.Tk - 导航栏:使用
创建导航栏,支持点击菜单项切换不同的页面(Frame)。tk.Menu - 页面管理:
- 使用
创建多个页面。tk.Frame - 将页面存储在列表(如
)中以便管理。self.pages - 实现
方法,使用show_page(idx)
和lift()
方法来切换显示的页面。lower()
- 使用
- 按钮布局:
- 在每个页面上创建指定数量的按钮(通常为9个,按3x3网格布局)。
- 使用
布局管理器排列按钮。grid()
- 事件处理:
- 为按钮绑定事件处理函数。
- 关键:在循环中创建按钮时,必须使用闭包正确捕获循环变量(例如
),以避免所有按钮触发相同的事件。lambda i=i, j=j: func(i, j)
- 代码健壮性:确保
列表在添加Frame之前已初始化,避免self.pages
。AttributeError
Anti-Patterns
- 不要在循环中直接使用
,这会导致闭包问题。lambda: func(i) - 不要忘记在
中初始化__init__
。self.pages = [] - 不要使用
在同一个父容器中堆叠多个Frame而不进行显式/隐式的隐藏/显示控制(应使用lift/lower机制)。pack()
Interaction Workflow
- 询问或推断导航栏的名称和数量。
- 询问或推断每个页面需要的按钮数量和布局。
- 生成完整的、可运行的Python代码。
Triggers
- 写一段Python代码,用tkinter实现软件主体,导航栏可以切换页面显示内容
- tkinter 导航栏切换页面,页面分布9个按钮
- 用tkinter画一个图形界面,有导航栏和多个页面,每个页面有按钮