15/06/2017:<syntaxhighlight lang="python3" line="1"> from tkinter import * from functools import partial

janela = Tk() janela.geometry("600x600") v = []

tabela = Listbox(janela, selectmode = EXTENDED, width = 73) tabela.insert(END, "asdasd") tabela.delete(END, END) def clickcarrinho(botao):

  print(botao["text"])

class Produto(object):

  def __init__(self, name, qtd, preco, marca, codigo):
      self.s = {"nome" : name, "qnt" : qtd, "marca" :  marca, "preco" : preco, "codigo" : codigo}
  def muda(self, name, qtd, forn, preco):
      self.s["nome"] = name
      self.s["qnt"] = qtd
      self.s["fornecedor"] = forn
      self.s['preco'] = preco

CREATE def clickcriar():

  def clickadd():
      nome = inname.get()
      quantidade = inqnt.get()
      preco = inpreco.get()
      marca = inmarca.get()
      codigo = incodigo.get()
      
      tabela.insert(END, nome)
      
      arquivo = open("produtos.txt", "a")
      lista = []
      lista.append(nome + " ")
      lista.append(quantidade +" ")
      lista.append(preco + " ")
      lista.append(marca + " ")
      lista.append(codigo)
      
      arquivo.writelines(lista)
      arquivo.write("\n")
      arquivo.close()
      
      v.append(Produto(nome, quantidade, preco, marca, codigo))
      janelacriar.destroy()
      return
  janelacriar = Toplevel()
  janelacriar.geometry("300x200")
  janelacriar.title("Novo produto")
  
  nome = Label(janelacriar, text = "Nome do produto:").place(x = 5, y = 5)
  inname = Entry(janelacriar)
  inname.place(x = 120, y = 5)
  
  qnt = Label(janelacriar, text = "Quantidade:").place(x = 5, y = 30)
  inqnt = Spinbox(janelacriar, from_ = 0, to = 1000)
  inqnt.place(x = 120, y = 30)
  
  preco = Label(janelacriar, text = "Preço:               R$").place(x = 5, y = 55)
  inpreco = Entry(janelacriar)
  inpreco.place(x = 120, y = 55)
  
  marca = Label(janelacriar, text = "Marca/Fornecedor:").place(x = 5, y = 80)
  inmarca = Entry(janelacriar)
  inmarca.place(x = 120, y = 80)
  codigo = Label(janelacriar, text = "Codigo do produto:").place(x = 5, y = 105)
  incodigo = Entry(janelacriar)
  incodigo.place(x = 120, y = 105)


  btnadd = Button(janelacriar, text = "Confirmar", command = clickadd).place(x = 200, y = 160)
  janelacriar.mainloop()

RECOUVER def clickpesquisa():

  if metodo.get() == "Nome":
      m = 0
  else:
      m = 4 
  pesquisar = pesquisa.get()
  arquivo = open("produtos.txt", "r")
  produtos = arquivo.readlines()
  print(type(produtos))
  for i in produtos:
      lista = i.split()
      if lista[m] == pesquisar:
          status["text"] = pesquisar + " encontrado"
          status.place(x = 5, y = 30)
          status["fg"] = "blue" 
          print("encontrado")
          break
      print(lista)
  else:
      status["text"] = pesquisar + " não encontrado"
      status.place(x = 5, y = 30)
      status["fg"] = "red" 

UPDATE

def clickeditar(ANCHOR):

  def clickadd():
      nome = inname.get()
      quantidade = inqnt.get()
      preco = inpreco.get()
      marca = inmarca.get()
      codigo = incodigo.get()
      
      arquivo = open("produtos.txt", "r")
      produtos = arquivo.readlines()
      arquivo.close()
      
      arquivo = open("produtos.txt", "w")
      
      for i in produtos:
          lista = i.split()
          if lista[0] == pesquisa:
              arquivo.writelines(nome + " " + quantidade + " " + preco + " " + marca+ " " + codigo+ "\n")
          else:
              arquivo.writelines(i)
      janelaeditar.destroy()
     
      
  janelaeditar = Toplevel()
  janelaeditar.geometry("300x200")
  janelaeditar.title("Editar")
  
  nome = Label(janelaeditar, text = "Nome do produto:").place(x = 5, y = 5)
  inname = Entry(janelaeditar)
  inname.place(x = 120, y = 5)
  
  qnt = Label(janelaeditar, text = "Quantidade:").place(x = 5, y = 30)
  inqnt = Spinbox(janelaeditar, from_ = 0, to = 1000)
  inqnt.place(x = 120, y = 30)
  
  preco = Label(janelaeditar, text = "Preço:               R$").place(x = 5, y = 55)
  inpreco = Entry(janelaeditar)
  inpreco.place(x = 120, y = 55)
  
  marca = Label(janelaeditar, text = "Marca/Fornecedor:").place(x = 5, y = 80)
  inmarca = Entry(janelaeditar)
  inmarca.place(x = 120, y = 80)
  codigo = Label(janelaeditar, text = "Codigo do produto:").place(x = 5, y = 105)
  incodigo = Entry(janelaeditar)
  incodigo.place(x = 120, y = 105)
  pesquisa = tabela.get(ANCHOR)
  for i in v:
      if i.s["nome"] == pesquisa:
          inname.insert(END, i.s["nome"])
          inqnt.insert(0, i.s["qnt"])
          inpreco.insert(END, i.s["preco"])
          inmarca.insert(END, i.s["marca"])
          incodigo.insert(END, i.s["codigo"])
  btnadd = Button(janelaeditar, text = "Confirmar", command = clickadd).place(x = 200, y = 160)
  janelaeditar.mainloop()

tabela = Listbox(janela, selectmode = EXTENDED, width = 73) tabela.place(x = 5, y = 50) btntabela = Button(janela, text = "Delete", command = lambda tabela = tabela: tabela.delete(ANCHOR)) btntabela.place(x = 525, y = 5)

CREATE btncriar = Button(janela, text = "Adicionar novo produto", command = clickcriar).place(x = 355, y = 5)

carrinho = Button(janela, width =20, text = "Meu carrinho") carrinho.place(x = 200, y = 210) carrinho["command"] =partial(clickcarrinho, carrinho)

RECOUVER pesquisa = Entry(janela, width = 13) pesquisa.place(x = 5, y = 10) btpesquisa = Button(janela, width = 10, height = 1, text = "pesquise", command = clickpesquisa) btpesquisa.place(x = 220, y =5) status = Label(janela) metodo = StringVar(janela) metodo.set("Nome") metodopesquisa = OptionMenu(janela, metodo, "Nome", "Codigo").place(x = 130, y = 5) UPDATE

btneditar = Button(janela, text = "Editar", command = lambda tabela = tabela: clickeditar(ANCHOR)).place(x = 5, y = 300)

janela.mainloop() </syntaxhighlight>