函子蛋糕 2023-01-14 22:29 采纳率: 80.6%
浏览 18
已结题

写这个程序的思路应该是怎样的?

语言:python
库:Tkinter
程序设计:介绍中药的小工具。将各类中药写进二级菜单栏,鼠标事件选中每个中药,可以在tk窗口内打印出它的介绍。并打包成安卓。
问题:
1.请写出简单菜单栏做范例,并添加点击事件,能输出对应的介绍。(我主要想看介绍以什么数据格式存、取介绍是以什么方式与该中药名对应、鼠标事件如何打印到窗口)
2.请给出打包安卓的教程。(我只会打包exe)
3.请尽可能简化程序行数。

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-01-14 22:40
    关注

    使用 Tkinter 库可以很容易地创建一个菜单栏。下面是一个简单的示例,它创建了一个包含一个 "药材" 菜单的窗口,其中包含一些中药材的子菜单项,并为每个子菜单项添加了点击事件,打印出对应的中药材介绍。

    import tkinter as tk
    
    def show_herb_info(herb):
        print(herb_info[herb])
    
    # 中药材信息字典
    herb_info = {
        "人参": "人参,又名红参、白参,是一种常用中药材。",
        "枸杞": "枸杞是一种常用中药材,具有滋补养颜、益气养血的作用。",
        "黄芪": "黄芪是一种常用中药材,具有滋阴养肺、益气养血的作用。"
    }
    
    root = tk.Tk()
    root.title("中药材介绍")
    
    # 创建菜单栏
    menubar = tk.Menu(root)
    root.config(menu=menubar)
    
    # 创建 "药材" 菜单
    herb_menu = tk.Menu(menubar)
    menubar.add_cascade(label="药材", menu=herb_menu)
    
    # 创建子菜单项
    for herb in herb_info:
        herb_menu.add_command(label=herb, command=lambda herb=herb: show_herb_info(herb))
    
    root.mainloop()
    
    

    打包安卓应用程序需要使用一个称为 Kivy 的库来进行。Kivy 是一个用于创建跨平台应用程序的 Python 库。可以在这里找到 Kivy 的文档和教程。

    还有,为了简化程序行数,可以考虑将中药材信息存储在一个外部文件中,例如 JSON 文件或 CSV 文件,然后在程序中读取该文件并动态创建菜单项。还可以使用循环来创建子菜单项,而不是逐个手动添加。
    下面是一个示例,它使用 JSON 文件存储中药材信息,并在程序中动态创建菜单项。

    import tkinter as tk
    import json
    
    def show_herb_info(herb):
        print(herb_info[herb])
    
    # 从 JSON 文件中读取中药材信息
    with open("herb_info.json", "r") as f:
        herb_info = json.load(f)
    
    root = tk.Tk()
    root.title("中药材介绍")
    
    # 创建菜单栏
    menubar = tk.Menu(root)
    root.config(menu=menubar)
    
    # 创建 "药材" 菜单
    herb_menu = tk.Menu(menubar)
    menubar.add_cascade(label="药材", menu=herb_menu)
    
    # 循环创建子菜单项
    for herb in herb_info:
        herb_menu.add_command(label=herb, command=lambda herb=herb: show_herb_info(herb))
    
    root.mainloop()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 1月14日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line