Python - Tkinter Module

1

I'malmostdonewiththislittleprogram,butwhat'shappeningisthis:

Inthe"Tools" tab I create 2 submenus, in which I wanted to add submenus within other submenus, I know it's possible, but I still have not figured it out.

So far I've been able to make a "submenu" for the "Languages" submenu, I wanted it possible for someone to help me create the submenu for the other in the "Environment" case.

Thanks in advance!

from Tkinter import *
import tkFileDialog
import random


class Random:
    def __init__(self):
        janela = Tk()
        janela.geometry("1024x720")
        janela.title("Sorteio de Times")#Aqui é o nome do programa



        lb1 = Label (janela, font=("Tahoma", 10), text="Todos os Direitos Reservados à Del+, entretanto o código está aberto exclusivamente para Programadores Brasileiros. (Atenção: Este programa não pode ser comercializado.)")
        lb1.pack(side=BOTTOM)

        caixa=Frame(janela, borderwidth=3, relief=GROOVE)
        caixa.pack(pady=40)

        lb2 = Label (caixa, font=("Tahoma", 10), text="*Instruções:\n- Clique no Botão Arquivo > Começar. O programa irá criar uma lista vazia para que o usuário possa escrever o nome dos Times a serem sorteados aleatóriamente \n- Em Seguida, depois de ter escrevido os times, Clique em Sortear. (Obs.: Não precisa escrever a lista toda) \n\n*Como Funciona:\n- Só ir clicando em Sortear até sortear todos os Times. \n(Obs.: Além  dos Times serem sorteados aleatóriamente, o programa não deixa os times se repetirem, \nporém quando acabar você pode clicar em Continuar com a mesma Lista ou Criar nova Lista).",  anchor=W, justify=LEFT)
        lb2.pack()





        def Open(): tkFileDialog.askopenfilename()
        def Quit(): janela.destroy()



        menubar = Menu(janela, tearoff=False)
        janela.config(menu=menubar)


        MENUarquivo = Menu(menubar, tearoff=False)
        MENUarquivo.add_command(label="Começar",)
        MENUarquivo.add_command(label="Abrir", command=Open)
        MENUarquivo.add_separator()
        MENUarquivo.add_command(label="Sair", command=Quit)
        menubar.add_cascade(label="Arquivo", menu=MENUarquivo)

        MENUferramentas = Menu(menubar, tearoff=False)
        submenu = Menu(MENUferramentas, tearoff=False)

        MENUferramentas.add_command(label="Linguagens",)
        submenu.add_command(label="Português",)
        submenu.add_command(label="English",)
        submenu.add_command(label="Espanõl",)
        MENUferramentas.add_cascade(label="Linguagens", menu=submenu)

        MENUferramentas.add_command(label="Ambiente",)
        menubar.add_cascade(label="Ferramentas", menu=MENUferramentas)

        MENUajuda = Menu(menubar, tearoff=False)
        MENUajuda.add_command(label="Sobre", command=self.sobre)
        MENUajuda.add_command(label="Como Usar?",)
        menubar.add_cascade(label="Ajuda", menu=MENUajuda)




        bt = Button(janela, width=15, height=2, text="Resetar")
        bt.place(x=10, y=200)

        bt = Button(janela, width=15, height=2, text="Sortear")
        bt.place(x=10, y=310)



        # Por Fim, a janela:
        janela.mainloop()

    def sobre(self):# uma pequena função "sobre"
        root = Tk()
        root.geometry("240x110+70+70")
        root.title("Sobre")

        texto=("Random.v0.1_Estável")
        textONlabel = Label(root, text=texto)
        textONlabel.pack()


        lb2 = Label(root, text="Licença Livre")
        lb2.pack()

Random()
    
asked by anonymous 18.03.2017 / 19:40

1 answer

2

You have to create a menu ( add_cascade ) also for the Ambiente menu, and then just add the items:

class Random:
    def __init__(self):
        janela = Tk()
        janela.geometry("1024x720")
        janela.title("Sorteio de Times")#Aqui é o nome do programa

        lb1 = Label (janela, font=("Tahoma", 10), text="Todos os Direitos Reservados à Del+, entretanto o código está aberto exclusivamente para Programadores Brasileiros. (Atenção: Este programa não pode ser comercializado.)")
        lb1.pack(side=BOTTOM)

        caixa=Frame(janela, borderwidth=3, relief=GROOVE)
        caixa.pack(pady=40)

        lb2 = Label (caixa, font=("Tahoma", 10), text="*Instruções:\n- Clique no Botão Arquivo > Começar. O programa irá criar uma lista vazia para que o usuário possa escrever o nome dos Times a serem sorteados aleatóriamente \n- Em Seguida, depois de ter escrevido os times, Clique em Sortear. (Obs.: Não precisa escrever a lista toda) \n\n*Como Funciona:\n- Só ir clicando em Sortear até sortear todos os Times. \n(Obs.: Além  dos Times serem sorteados aleatóriamente, o programa não deixa os times se repetirem, \nporém quando acabar você pode clicar em Continuar com a mesma Lista ou Criar nova Lista).",  anchor=W, justify=LEFT)
        lb2.pack()

        def Open(): tkFileDialog.askopenfilename()
        def Quit(): janela.destroy()

        menubar = Menu()
        MENUarquivo = Menu()
        MENUferramentas = Menu()
        MENUlang = Menu()
        MENUajuda = Menu()
        MENUenv = Menu()

        menubar.add_cascade(label="Arquivo", menu=MENUarquivo)
        MENUarquivo.add_command(label="Começar",)
        MENUarquivo.add_command(label="Abrir", command=Open)
        MENUarquivo.add_separator()
        MENUarquivo.add_command(label="Sair", command=Quit)

        menubar.add_cascade(label="Ferramentas", menu=MENUferramentas)
        MENUferramentas.add_cascade(label="Linguagens", menu=MENUlang)
        MENUlang.add_command(label="Português",)
        MENUlang.add_command(label="English",)
        MENUlang.add_command(label="Espanõl",)

        MENUferramentas.add_cascade(label="Ambiente", menu=MENUenv)
        MENUenv.add_command(label="ENV 1",)
        MENUenv.add_command(label="ENV 2",)
        MENUenv.add_command(label="ENV 3",)

        menubar.add_cascade(label="Ajuda", menu=MENUajuda)
        MENUajuda.add_command(label="Sobre", command=self.sobre)
        MENUajuda.add_command(label="Como Usar?",)

        bt = Button(janela, width=15, height=2, text="Resetar")
        bt.place(x=10, y=200)

        bt = Button(janela, width=15, height=2, text="Sortear")
        bt.place(x=10, y=310)

        # Por Fim, a janela:
        janela.config(menu=menubar)
        janela.mainloop()

    def sobre(self):# uma pequena função "sobre"
        root = Tk()
        root.geometry("240x110+70+70")
        root.title("Sobre")

        texto=("Random.v0.1_Estável")
        textONlabel = Label(root, text=texto)
        textONlabel.pack()

        lb2 = Label(root, text="Licença Livre")
        lb2.pack()

Random()
    
18.03.2017 / 20:29