一个简单的库,用于处理python控制台应用程序的菜单。

python-console-menu的Python项目详细描述


python控制台菜单

license

这个库提供了一种快速创建python控制台应用程序菜单的方法。

概述

课程

摘要菜单

这是您需要在菜单中扩展的抽象类。 它的构造函数接受一个显示在菜单顶部的标题。这应该从实现的构造函数中调用。喜欢这样:

class MenuImplementation(AbstractMenu):
    def __init__(self):
        super().__init__("Menu Title")
方法
  • initialise()这需要在实现中重写,并且是将项添加到菜单的位置。
  • display()这将启动此菜单。这只需要在系统的根菜单上调用,因为所有子菜单都由这个库处理。
  • add_menu_item(MenuItem(id, description, subMenu or action))这将向菜单添加一个项。
  • add_hidden_menu_item(new MenuItem(id, description, subMenu or action))这是一个助手方法,它添加一个菜单项,然后将其隐藏。
  • update_menu_items()这可以在每个菜单中重写,以便根据对应用程序的更改更新项,例如,如果现在需要,显示隐藏的菜单项。
  • show_menu_item(id)这可以用来显示隐藏的菜单项,通常在上面的方法中。这将使用给定给菜单项的唯一ID。
  • hide_menu_item(id)这可用于隐藏菜单项。
菜单项

这是用于定义系统中菜单项的类。 它有两个构造函数,一个用于项是子菜单,另一个用于项是操作。 应该这样调用它们:MenuItem(id, description, subMenu or action)

方法
  • hide()用于菜单项,以从列表中隐藏它们。
  • show()用于隐藏菜单项,以在列表中显示它们。
  • {{CD11}},它用于将菜单项设置为菜单的退出选项,或者转到父菜单,或退出应用程序。

示例

菜单初始化
mainMenu = MainMenu()
mainMenu.display()

主菜单类
class MainMenu(AbstractMenu):
    def __init__(self):
        super().__init__("Welcome to the main menu")

    def initialise(self):
        self.add_menu_item(MenuItem(100, "Exit menu").set_as_exit_option())
        self.add_menu_item(MenuItem(101, "Print Hello World", lambda: print("Hello World!")))

输出

Welcome to the main menu
0. Exit menu
1. Print Hello World
Select option: 1
Hello World!

Welcome to the main menu
0. Exit menu
1. Print Hello World
Select option: 0

Process finished with exit code 0

在demo/menu_demo.py中查看库的更好示例实现。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit有没有办法在Java中重新初始化静态类?   在浏览器中点击应用程序时java Play框架挂起   文件Java错误中的NullPointerException   使用Java中的SNMP查找网络中计算机的登录名   java包装服务器引导程序已弃用,有什么替代方案?   当客户在等待理发时,java信号量值是否存在问题?   java如何使用JavaMail仅下载特定类型的附件   如何在java中将十进制转换为十六进制   java Slick2D粒子系统不会生成粒子   java检测更改事件来自何处   将Java集合类型参数类设置为数组   java如何从eclipse导出为可运行JAR文件?   java EntityManager对象未注入Glassfish和Spring   swing从actionPerformed和actionListener Java返回字符串   java在给定另一个等价键对象的情况下获取映射项的当前键   无论输入如何,java网络都会产生相同的输出