In the Help menu, I'm opening how many windows I click to open, this was not supposed to happen. I tried to adapt something from this post: Tkinter focus on a window bypassing the behind? , but I could not, it's the same problem practically.
Follow the code:
from tkinter import *
import tkinter.filedialog as tkfiledialog
class homepage:
def __init__(self):
inicio = Tk()
lb1 = Label (inicio, padx=10, font=("Tahoma", 10), text="Todos os Direitos Reservados à PRO+, entretanto o código está aberto exclusivamente para Programadores Brasileiros. (Atenção: Este programa não pode ser comercializado.)")
lb1.pack(side=BOTTOM , anchor=CENTER)
inicio.overrideredirect(True) # Maximiza a janela sem bordas
inicio.resizable(False, False)
inicio.title("Pena Software")
inicio.geometry("{0}x{1}+0+0".format(inicio.winfo_screenwidth(), inicio.winfo_screenheight()))
inicio["bg"] = "gray"
inicio.iconbitmap(r'pena.ico')
def Open(): tkfiledialog.askopenfilename()
def Quit(): inicio.destroy()
menubar = Menu(tearoff=False)
inicio.config(menu=menubar)
MENUarquivo = Menu(tearoff=False)
menubar.add_cascade(label="Arquivo", menu=MENUarquivo)
MENUarquivo.add_command(label="Criar Sorteio",)
MENUarquivo.add_command(label="Abrir...", command=Open)
MENUarquivo.add_command(label="Editar Sorteio",)
MENUarquivo.add_separator()
MENUarquivo.add_command(label="Sair (Alt + F4)", command=Quit)
MENUferramentas = Menu(tearoff=False)
menulang = Menu(tearoff=False)
menubar.add_cascade(label="Ferramentas", menu=MENUferramentas)
menulang.add_command(label="Português (Brasil)",)
menulang.add_command(label="English (Em Breve)",)
MENUferramentas.add_cascade(label="Linguagens", menu=menulang)
def noite():
inicio.configure(background="black")
def padrao():
inicio.configure(background="light gray")
menuamb = Menu(tearoff=False)
menuamb.add_checkbutton(label="Padrão", command=padrao)
menuamb.add_checkbutton(label="Noite...", command=noite)
MENUferramentas.add_cascade(label="Ambiente", menu=menuamb)
MENUajuda = Menu(menubar, tearoff=False)
MENUajuda.add_command(label="Sobre", command=sobre)
MENUajuda.add_command(label="Como Usar? (F1)", command=como_usar)
menubar.add_cascade(label="Ajuda", menu=MENUajuda)
inicio.mainloop()
def sobre():# uma pequena função "sobre"
root = Tk()
root.geometry("240x110+75+75")
root.title("Sobre")
texto=("Pena_Software.v0.1_Estável")
textONlabel = Label(root, text=texto)
textONlabel.pack()
text1=("Livre")
lb2 = Label(root, text="Licença Livre ")
lb2.pack(side=BOTTOM)
def como_usar():
comousar = Tk()
comousar.geometry("380x520+80+80")
comousar.title("Como Usar?...")
comousar["bg"] = "white"
lb1 = Label(comousar, text="Menu ajuda" , font="Arial 11 italic" , background="white")
lb1.pack()
lb2 = Label(comousar, text="Como funciona o programa:\n" , font="Arial 10 bold" , background="white")
lb2.pack(anchor=NW)
lb3 = Label(comousar, text="Arquivo:" , font="Arial 10 italic" , background="white")
lb3.pack(anchor=NW)
lb4 = Label(comousar, text=" - Criar Sorteio: Cria uma lista de caracteres, letras, numeros e/ou \npalavras e, posterior sorteá-los.\n- Abrir...: Busca uma lista já criada, para poupar trabalho de fazer\n uma nova.\n - Editar Soteio: Tem com função editar uma lista já criada (escre-\n veu algo errado? Não tem problema, edite-o).\n- Sair: Tem como função fechar o programa. \n" , font="Arial 9" , background="white")
lb4.pack(anchor=NW)
lb5 = Label(comousar, text="Ferramentas:" , font="Arial 10 italic" , background="white")
lb5.pack(anchor=NW)
lb6 = Label(comousar, text=" - Liguagens: Tem como função proporcionar uma boa experiên-\ncia à outros países.\n • No Momento a Linguaguem disponível é: Português (Brasil)\n- Ambiente: Tem como função a diminuir a claridade (para evitar\n problemas na vista)\n" , font="Arial 9" , background="white")
lb6.pack(anchor=NW)
homepage()