NOSSO MENU

sábado, 3 de junho de 2023

estrutura do grafo do menu

 # -*- coding: utf-8 -*-

"""

Created on Sat Jun  3 00:20:08 2023


@author: dan-s

"""


class MenuItem:

    def __init__(self, label, action=None):

        self.label = label

        self.action = action



class MenuGraph:

    def __init__(self):

        self.graph = {}


    def add_item(self, item, parent=None):

        if item not in self.graph:

            self.graph[item] = []

        if parent:

            self.graph[parent].append(item)


    def display(self):

        self._display_menu("", list(self.graph.keys())[0])


    def _display_menu(self, indent, item):

        print(indent + item.label)


        if item.action:

            item.action()


        children = self.graph.get(item, [])

        for child in children:

            self._display_menu(indent + "  ", child)



# Exemplo de uso


# Funções de ação

def action1():

    print("Executing action 1...")


def action2():

    print("Executing action 2...")


def action3():

    print("Executing action 3...")


# Criando os itens de menu

item1 = MenuItem("Item 1", action1)

item2 = MenuItem("Item 2", action2)

item3 = MenuItem("Item 3")

item4 = MenuItem("Item 4", action3)

item5 = MenuItem("Item 5")


# Construindo a estrutura do grafo

menu_graph = MenuGraph()

menu_graph.add_item(item1)

menu_graph.add_item(item2, parent=item1)

menu_graph.add_item(item3, parent=item1)

menu_graph.add_item(item4, parent=item3)

menu_graph.add_item(item5, parent=item3)


# Exibindo o menu

menu_graph.display()

"""Neste exemplo, a classe MenuItem representa cada item do menu, assim como no exemplo anterior. A classe MenuGraph é responsável por criar e gerenciar a estrutura do grafo do menu. O método add_item é usado para adicionar um item ao grafo, especificando seu nó pai (ou seja, o item pai no menu). O método display é usado para exibir o menu na tela, percorrendo o grafo e imprimindo os itens de acordo com as conexões definidas.


As funções de ação são definidas da mesma maneira que no exemplo anterior e são executadas quando um item do menu é selecionado.


Você pode personalizar o exemplo, adicionando mais itens ao menu e definindo as conexões desejadas entre eles usando o método add_item. Certifique-se de ajustar o código conforme necessário para atender às suas necessidades específicas."""


Nenhum comentário:

Postar um comentário

Redes Sociais

anuncios