• 周三. 1 月 15th, 2025

儿童 Python 启蒙之旅 第16课:GUI 控件进阶与菜单栏使用

anilineup

8 月 10, 2024

在第15课中,孩子们已经学习了如何使用tkinter创建更复杂的GUI应用程序,并掌握了如何处理文本框、复选框和单选按钮等控件的事件。接下来的第16课,我们将进一步扩展他们的知识,让他们学习如何使用列表框、滚动条和菜单栏,并介绍如何处理这些控件的事件。

 

课程目标:

  • 学习如何在tkinter中创建列表框、滚动条和菜单栏。
  • 理解如何处理这些控件的事件。
  • 创造一个包含菜单栏和列表框的GUI应用程序。

课程内容:

  1. 复习上一课的内容

    • 回顾tkinter的基本用法。
    • 再次强调GUI的重要性。
    • 复习如何创建文本框、复选框和单选按钮控件。
  2. 新控件介绍

    • 创建列表框(Listbox)。
    • 创建滚动条(Scrollbar)。
    • 创建菜单栏(Menu)。
  3. 事件处理

    • 如何定义事件处理函数。
    • 使用不同的控件触发事件处理函数。
  4. 练习

    • 创建一个简单的图书管理程序。
    • 实现添加、删除图书的功能。
  5. 家庭作业

    • 设计一个带有更多功能的图书管理程序。

示例代码:

import tkinter as tk
from tkinter import messagebox

def add_book():
    """处理添加按钮的点击事件,将书籍名称添加到列表框中。"""
    book_name = entry_book_name.get()
    if book_name:
        listbox_books.insert(tk.END, book_name)
        entry_book_name.delete(0, tk.END)

def remove_book():
    """处理移除按钮的点击事件,从列表框中删除选定的书籍。"""
    selected_indices = listbox_books.curselection()
    for index in reversed(selected_indices):
        listbox_books.delete(index)

def about_app():
    """显示关于应用程序的信息。"""
    messagebox.showinfo("About Book Manager", "This is a simple book manager.")

# 创建主窗口
root = tk.Tk()
root.title("Book Manager")

# 创建书名标签和文本框
label_book_name = tk.Label(root, text="Book Name:")
label_book_name.grid(row=0, column=0, sticky=tk.W, pady=5)
entry_book_name = tk.Entry(root)
entry_book_name.grid(row=0, column=1, pady=5)

# 创建添加和移除按钮
button_add = tk.Button(root, text="Add Book", command=add_book)
button_add.grid(row=0, column=2, pady=5)
button_remove = tk.Button(root, text="Remove Book", command=remove_book)
button_remove.grid(row=0, column=3, pady=5)

# 创建列表框和滚动条
listbox_books = tk.Listbox(root, width=50, height=10)
listbox_books.grid(row=1, column=0, columnspan=4, pady=5)

scrollbar_books = tk.Scrollbar(root, orient=tk.VERTICAL, command=listbox_books.yview)
scrollbar_books.grid(row=1, column=4, sticky=tk.NS)
listbox_books.config(yscrollcommand=scrollbar_books.set)

# 创建菜单栏
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)

# 创建文件菜单
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="Exit", command=root.quit)
menu_bar.add_cascade(label="File", menu=file_menu)

# 创建帮助菜单
help_menu = tk.Menu(menu_bar, tearoff=0)
help_menu.add_command(label="About", command=about_app)
menu_bar.add_cascade(label="Help", menu=help_menu)

# 运行主循环
root.mainloop()

 

教学指导:

  1. 讲解代码逻辑

    • 解释tkinter的基本结构和组件。
    • 介绍如何使用ListboxScrollbarMenu创建列表框、滚动条和菜单栏。
    • 说明如何获取这些控件的状态和值。
  2. 实操演示

    • 演示如何创建一个新的Python文件并输入以上代码。
    • 展示如何运行程序,并解释每个控件的作用。
  3. 互动环节

    • 邀请学生尝试修改代码,比如改变控件的布局或添加更多的书籍。
    • 让学生尝试添加更多的功能,比如搜索功能。
  4. 拓展学习

    • 引导学生思考如何使用类似的方法创建其他类型的GUI应用程序。
    • 讨论如何处理更复杂的用户交互,如多窗口应用、拖放操作等。
  5. 家庭作业

    • 要求学生设计并实现一个更复杂的图书管理程序。
    • 程序应该包括更多功能,如编辑书籍信息、保存书籍数据等。

通过本节课的学习,孩子们不仅能够学习到如何使用更多的GUI元素,还能掌握如何处理这些元素产生的事件。这将有助于他们建立更强大的编程技能,并为将来开发更复杂的应用程序打下坚实的基础。

 

anilineup

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注