Python script to save notepad text

Asked

Viewed 683 times

-1

I’m trying to do in python a program that gives some food options to Sario and then saves them in a notepad, but is giving error, what is wrong?

error: Exception in Tkinter callback Traceback (Most recent call last): File "C: Users Home Appdata Local Programs Python Python38 lib tkinter__init__.py", line 1883, in call Return self.func(*args) File "C: Users Home Appdata Local Programs Python Python38 lib tkinter__init__.py", line 3941, in call self. __var.set(self.__value) Attributeerror: 'Nonetype' Object has no attribute 'set'

from tkinter import *

janela = Tk()
janela.title("McDonald's")

def salvar_dados():
    f = open("pedidos.txt", "a")
    f.write(f"Nome: {nome.get()}\n")
    f.write(f"Pão: {pao.get()}\n")
    f.write(f"Carne: {carne.get()}\n")
    f.write(f"Salada: {salada.get()}\n")
    f.write(f"Tempero: {tempero.get()}\n")
    f.write(f"Condimentos: {condimentos.get()}\n")
    f.write(f"Acompanhamentos: {acompanhamentos.get()}\n")
    f.write(f"Bebidas: {bebidas.get()}\n")
    f.write(f"Observação: {observacao.get()}\n")
    #nome.set("Araras")
    nome.delete(0, END)
    observacao.delete("1.0", END)
    f.close()

def ler_pao(arquivo):
    leit1 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit1.append(linha.rstrip())
    f.close()
    leit1.sort()
    return leit1

def ler_carne(arquivo):
    leit2 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit2.append(linha.rstrip())
    f.close()
    leit2.sort()
    return leit2

def ler_salada(arquivo):
    leit3 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit3.append(linha.rstrip())
    f.close()
    leit3.sort()
    return leit3

def ler_tempero(arquivo):
    leit4 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit4.append(linha.rstrip())
    f.close()
    leit4.sort()
    return leit4

def ler_condimentos(arquivo):
    leit5 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit5.append(linha.rstrip())
    f.close()
    leit5.sort()
    return leit5

def ler_acompanhamentos(arquivo):
    leit6 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit6.append(linha.rstrip())
    f.close()
    leit6.sort()
    return leit6

def ler_bebidas(arquivo):
    leit7 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit7.append(linha.rstrip())
    f.close()
    leit7.sort()
    return leit7

pedido_txt = "pedidos.txt"
paon = "Escolha o pão"
carnen = "Escolha a carne"
salan = "Escolha a salada"
tempn = "Escolha o tempero"
condin = "Escolha os condimentos"
acomn = "Escolha os acompanhamentos"
bebn = "Escolha as bebidas"

p1 = Label(janela, text="Pão: ").pack()
pao = StringVar()
pao.set(paon)

op1 = ler_pao("pao.txt")
OptionMenu(janela, p1, *op1).pack()

p2 = Label(janela, text="Carne: ").pack()
carne = StringVar()
carne.set(carnen)

op2 = ler_carne("carne.txt")
OptionMenu(janela, p2, *op2).pack()


p3 = Label(janela, text="Salada: ").pack()
salada = StringVar()
salada.set(salan)

op3 = ler_salada("salad.txt")
OptionMenu(janela, p3, *op3).pack()

p4 = Label(janela, text="Tempero: ").pack()
tempero = StringVar()
tempero.set(tempn)

op4 = ler_tempero("temp.txt")
OptionMenu(janela, p4, *op4).pack()

p5 = Label(janela, text="Condimentos: ").pack()
condimentos = StringVar()
condimentos.set(condin)

op5 = ler_condimentos("condi.txt")
OptionMenu(janela, p5, *op5).pack()

p6 = Label(janela, text="Acompanhamentos: ").pack()
acompanhamentos = StringVar()
acompanhamentos.set(acomn)

op6 = ler_acompanhamentos("acom.txt")
OptionMenu(janela, p6, *op6).pack()

p7 = Label(janela, text="Bebidas: ").pack()
bebidas = StringVar()
bebidas.set(bebn)

op7 = ler_bebidas("beb.txt")
OptionMenu(janela, p7, *op7).pack()

n = Label(janela, text="Nome: ").pack()
nome = Entry(janela)
nome.pack()

obs = Label(janela, text="Observação: ").pack()
observacao = Entry(janela)
observacao.pack()

sv = Button(janela, text="Salvar", command=salvar_dados)
sv.pack()

janela.mainloop()

1 answer

0


I didn’t have this error anymore yes: Typeerror: init() Missing 1 required positional argument: 'value' since in the Optionmenu you forgot to set the variable value

Optionmenu(window, P2, *op2). pack()

when it should be

Optionmenu (window,meat,P2, *op2). pack()

from tkinter import *

janela = Tk()
janela.title("McDonald's")

def salvar_dados():
    f = open("pedidos.txt", "a")
    f.write(f"Nome: {nome.get()}\n")
    f.write(f"Pão: {pao.get()}\n")
    f.write(f"Carne: {carne.get()}\n")
    f.write(f"Salada: {salada.get()}\n")
    f.write(f"Tempero: {tempero.get()}\n")
    f.write(f"Condimentos: {condimentos.get()}\n")
    f.write(f"Acompanhamentos: {acompanhamentos.get()}\n")
    f.write(f"Bebidas: {bebidas.get()}\n")
    f.write(f"Observação: {observacao.get()}\n")
    #nome.set("Araras")
    nome.delete(0, END)
    observacao.delete(0, END)
    f.close()

def ler_pao(arquivo):
    leit1 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit1.append(linha.rstrip())
    f.close()
    leit1.sort()
    return leit1

def ler_carne(arquivo):
    leit2 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit2.append(linha.rstrip())
    f.close()
    leit2.sort()
    return leit2

def ler_salada(arquivo):
    leit3 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit3.append(linha.rstrip())
    f.close()
    leit3.sort()
    return leit3

def ler_tempero(arquivo):
    leit4 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit4.append(linha.rstrip())
    f.close()
    leit4.sort()
    return leit4

def ler_condimentos(arquivo):
    leit5 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit5.append(linha.rstrip())
    f.close()
    leit5.sort()
    return leit5

def ler_acompanhamentos(arquivo):
    leit6 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit6.append(linha.rstrip())
    f.close()
    leit6.sort()
    return leit6

def ler_bebidas(arquivo):
    leit7 = []
    f = open(arquivo, encoding="utf8")
    for linha in f: leit7.append(linha.rstrip())
    f.close()
    leit7.sort()
    return leit7

pedido_txt = "pedidos.txt"
paon = "Escolha o pão"
carnen = "Escolha a carne"
salan = "Escolha a salada"
tempn = "Escolha o tempero"
condin = "Escolha os condimentos"
acomn = "Escolha os acompanhamentos"
bebn = "Escolha as bebidas"

p1 = Label(janela, text="Pão: ").pack()
pao = StringVar()
pao.set(paon)

op1 = ler_pao("pao.txt")
OptionMenu(janela,pao,p1, *op1).pack()

p2 = Label(janela, text="Carne: ").pack()
carne = StringVar()
carne.set(carnen)

op2 = ler_carne("carne.txt")
OptionMenu(janela,carne,p2, *op2).pack()


p3 = Label(janela, text="Salada: ").pack()
salada = StringVar()
salada.set(salan)

op3 = ler_salada("salad.txt")
OptionMenu(janela, salada,p3, *op3).pack()

p4 = Label(janela, text="Tempero: ").pack()
tempero = StringVar()
tempero.set(tempn)

op4 = ler_tempero("temp.txt")
OptionMenu(janela, tempero,p4, *op4).pack()

p5 = Label(janela, text="Condimentos: ").pack()
condimentos = StringVar()
condimentos.set(condin)

op5 = ler_condimentos("condi.txt")
OptionMenu(janela, condimentos,p5, *op5).pack()

p6 = Label(janela, text="Acompanhamentos: ").pack()
acompanhamentos = StringVar()
acompanhamentos.set(acomn)

op6 = ler_acompanhamentos("acom.txt")
OptionMenu(janela, acompanhamentos,p6, *op6).pack()

p7 = Label(janela, text="Bebidas: ").pack()
bebidas = StringVar()
bebidas.set(bebn)

op7 = ler_bebidas("beb.txt")
OptionMenu(janela, bebidas,p7, *op7).pack()

n = Label(janela, text="Nome: ").pack()
nome = Entry(janela)
nome.pack()

obs = Label(janela, text="Observação: ").pack()
observacao = Entry(janela)
observacao.pack()

sv = Button(janela, text="Salvar", command=salvar_dados)
sv.pack()

janela.mainloop()

Min does not appear the error you reported, but hopefully this helps

Browser other questions tagged

You are not signed in. Login or sign up in order to post.