Ir ao conteúdo
  • Cadastre-se

Python Erro ao adicionar botão tkinter


Posts recomendados

import Doc_word
import PIL.Image, PIL.ImageTk
import tkinter as tk
from tkcalendar import Calendar, DateEntry
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from tkinter import Label,Entry
from tkinter.ttk import *
import os
from datetime import date, datetime
Data=datetime.today()
Endereço=''
Nome=''
CPF=' '

def calendario(janela):
    global Data
    #top = Toplevel(frame)
    top=janela

    def comandos():
         global Data
         Data = cal.get_date()
         top.destroy()


    #frame_label=Frame(top,text='Data de entrega')
    cal = DateEntry(top, width=12, background='darkblue', foreground='white', borderwidth=2, locale='pt_BR')
    botao_ok = Button(top, text="ok", command=comandos)
    #frame_label.pack(side='left')
    cal.pack(side='left')
    botao_ok.pack(side='left')
    #botao_ok.pack(side='left')
    #frame.pack()

def formatando_data(data):

    dia='00'
    mes='00'
    ano='0000'
    data_em_texto = data.strftime('%d/%m/%Y')
    for i in range(0,10):
        if i<2:
          if i==0:
            dia=data_em_texto[i]
          else:
              dia=dia+data_em_texto[i]
        elif i>2 :
            if i<5:
                if i==3:
                    mes = data_em_texto[i]
                else:
                    mes = mes + data_em_texto[i]
            elif i!=5:
                if i == 6:
                    ano = data_em_texto[i]
                else:
                    ano = ano + data_em_texto[i]
    if int(mes) == 1:
        self.mes = 'janeiro'
    elif int(mes) == 2:
        mes = 'fevereiro'
    elif int(mes) == 3:
        mes = 'março'
    elif int(mes) == 4:
        mes = 'abril'
    elif int(mes) == 5:
        mes = 'maio'
    elif int(mes) == 6:
        mes = 'junho'
    elif int(mes) == 7:
        mes = 'julho'
    elif int(mes) == 8:
        mes = 'agosto'
    elif int(mes) == 9:
        mes = 'setembro'
    elif int(mes) == 10:
        mes = 'outubro'
    elif int(mes) == 11:
        mes = 'novembro'
    elif int(mes) == 12:
        mes = 'dezembro'

    dia=str(dia)
    mes=str(mes)
    ano=str(ano)
    dataFormatada=dia + ' de '+ mes + ' de ' + ano
    dataFormatada=str(dataFormatada)
    return dataFormatada
class termos:
    global Data
    def __init__(self):
        global Data
        #Criando dados da janela principal

        self.janela_principal = tk.Tk()
        self.janela_principal.geometry('450x605') #Define o tamanho da janela
        self.janela_principal.resizable(False,False)

        #Botões de sair e para criar termo

        button = Button(self.janela_principal, text=' Gerar Termo de responsabilidade', command=self.termo)
        button.pack()
        self.botao_sair = Button(self.janela_principal, text='Sair', command=self.janela_principal.destroy)
        self.botao_sair.pack()
        self.botao_sair.pack()

        self.janela_principal.mainloop()

    def termo(self):
        # Variáveis para salvar dados
        global Data
        self.nome = StringVar()
        self.cpf=StringVar()
        self.data=StringVar()


        #Criando Janela
        self.janela_termo = tk.Tk()
        self.janela_termo.geometry('800x450')
        self.janela_termo.resizable(False,False)

        # Criando os frames
        self.frame_titulo_janela = Frame(self.janela_termo)
        self.frame_nome = Frame(self.janela_termo)
        self.frame_cpf = Frame(self.janela_termo)
        self.frame_data=Frame(self.janela_termo)
        self.frame_salvar=Frame(self.janela_termo)

        #Adicionando titulo
        self.label_titulo_termo=Label(self.frame_titulo_janela,text='Termo de Responsabilidade',font=('Helvetica',16))

        #Empacotando Título
        self.label_titulo_termo.pack()
        self.frame_titulo_janela.pack()

        #Nome

        #Adicionando o Label
        self.label_nome = Label(self.frame_nome, text='Nome do colaborador(a):')

        #Adicionando o Entry
        self.usuario= Entry(self.frame_nome,width=80,font='Calibri',textvariable=self.nome)#width= número de caracteres que é possóvel digitar
        self.usuario.bind('<Key>', (lambda _: self.salva_dados()))

        #Empacotando os dados do frame
        self.label_nome.pack(side='left')
        self.usuario.pack(side='left')

        #CPF
        # Adicionando o Label
        self.label_cpf = Label(self.frame_cpf, text='CPF:')

        # Adicionando o ENTRY
        self.cpf = Entry(self.frame_cpf, width=88,textvariable=self.cpf)  # width= número de caracteres que é possóvel digitar
        self.cpf.bind('<Key>', (lambda _: self.salva_dados()))

        # Empacotando os dados do frame
        self.label_cpf.pack(side='left')
        self.cpf.pack(side='left')

        #calendario:

        self.label_data=Label(self.frame_data,text='Data de entrega')
        self.botao_data=tk.Button(self.frame_data, text="Selecionar", command=self.janela)

        # empacotando data
        self.label_data.pack(side='left')
        self.botao_data.pack(side='left')

        #Botão de salvar
        self.botao_salvar=tk.Button(self.frame_salvar,text='Salvar',comand=self.file_dialog)
        self.botao_salvar.pack(side='bottom')

        #Empacotando os frames
        self.frame_titulo_janela.pack()
        self.frame_nome.pack()
        self.frame_cpf.pack()
        self.frame_data.pack()
        self.frame_salvar.pack()


        self.janela_termo.mainloop()



    def janela(self):
        global Data
        self.janela_calendario=tk.Tk()
        self.frame_titulo=Frame(self.janela_calendario)
        self.frame_calendario=Frame(self.janela_calendario)

        #Colocando Label
        self.label_titulo=Label(self.frame_titulo,text='Data de entrega')


        # Colocando calendario
        #Empacotando

        self.label_titulo.pack()
        self.frame_titulo.pack()
        calendario(self.janela_calendario)
        #self.quit.pack(side='left')
       # self.cal.pack(side='left')
        self.frame_calendario.pack()
    def salva_dados(self):
        global Nome,CPF,Patrimonio,Modelo,Mouse,Cadeado,Teclado
        Nome = self.usuario.get()
        CPF=self.cpf.get()

    def retorna_data(self):
        global Data
        self.data=formatando_data(Data)
        return self.data
    def file_dialog(self):
        global Endereço
        Tk().withdraw()  # Isto torna oculto a janela principal
        Endereço = filedialog.askdirectory()  # Isto te permite selecionar um arquivo
        print(Endereço)


obj=termos()

Estou iniciando na programação python e estou criando um programa que irá preencher um termo.Porém não estou conseguindo adicionar comando para o botão que irá salvar e selecionar o diretorio desejado.Segue abaixo o código e o erro que apresenta.O que devo fazer para solucionar e que erro é esse?


import PIL.Image, PIL.ImageTk
import tkinter as tk
from tkcalendar import Calendar, DateEntry
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from tkinter import Label,Entry
from tkinter.ttk import *
import os
from datetime import date, datetime
Data=datetime.today()
Endereço=''
Nome=''
CPF=' '

def calendario(janela):
    global Data
    #top = Toplevel(frame)
    top=janela

    def comandos():
         global Data
         Data = cal.get_date()
         top.destroy()


    #frame_label=Frame(top,text='Data de entrega')
    cal = DateEntry(top, width=12, background='darkblue', foreground='white', borderwidth=2, locale='pt_BR')
    botao_ok = Button(top, text="ok", command=comandos)
    #frame_label.pack(side='left')
    cal.pack(side='left')
    botao_ok.pack(side='left')
    #botao_ok.pack(side='left')
    #frame.pack()

def formatando_data(data):

    dia='00'
    mes='00'
    ano='0000'
    data_em_texto = data.strftime('%d/%m/%Y')
    for i in range(0,10):
        if i<2:
          if i==0:
            dia=data_em_texto[i]
          else:
              dia=dia+data_em_texto[i]
        elif i>2 :
            if i<5:
                if i==3:
                    mes = data_em_texto[i]
                else:
                    mes = mes + data_em_texto[i]
            elif i!=5:
                if i == 6:
                    ano = data_em_texto[i]
                else:
                    ano = ano + data_em_texto[i]
    if int(mes) == 1:
        self.mes = 'janeiro'
    elif int(mes) == 2:
        mes = 'fevereiro'
    elif int(mes) == 3:
        mes = 'março'
    elif int(mes) == 4:
        mes = 'abril'
    elif int(mes) == 5:
        mes = 'maio'
    elif int(mes) == 6:
        mes = 'junho'
    elif int(mes) == 7:
        mes = 'julho'
    elif int(mes) == 8:
        mes = 'agosto'
    elif int(mes) == 9:
        mes = 'setembro'
    elif int(mes) == 10:
        mes = 'outubro'
    elif int(mes) == 11:
        mes = 'novembro'
    elif int(mes) == 12:
        mes = 'dezembro'

    dia=str(dia)
    mes=str(mes)
    ano=str(ano)
    dataFormatada=dia + ' de '+ mes + ' de ' + ano
    dataFormatada=str(dataFormatada)
    return dataFormatada
class termos:
    global Data
    def __init__(self):
        global Data
        #Criando dados da janela principal

        self.janela_principal = tk.Tk()
        self.janela_principal.geometry('450x605') #Define o tamanho da janela
        self.janela_principal.resizable(False,False)

        #Botões de sair e para criar termo

        button = Button(self.janela_principal, text=' Gerar Termo de responsabilidade', command=self.termo)
        button.pack()
        self.botao_sair = Button(self.janela_principal, text='Sair', command=self.janela_principal.destroy)
        self.botao_sair.pack()
        self.botao_sair.pack()

        self.janela_principal.mainloop()

    def termo(self):
        # Variáveis para salvar dados
        global Data
        self.nome = StringVar()
        self.cpf=StringVar()
        self.data=StringVar()


        #Criando Janela
        self.janela_termo = tk.Tk()
        self.janela_termo.geometry('800x450')
        self.janela_termo.resizable(False,False)

        # Criando os frames
        self.frame_titulo_janela = Frame(self.janela_termo)
        self.frame_nome = Frame(self.janela_termo)
        self.frame_cpf = Frame(self.janela_termo)
        self.frame_data=Frame(self.janela_termo)
        self.frame_salvar=Frame(self.janela_termo)

        #Adicionando titulo
        self.label_titulo_termo=Label(self.frame_titulo_janela,text='Termo de Responsabilidade',font=('Helvetica',16))

        #Empacotando Título
        self.label_titulo_termo.pack()
        self.frame_titulo_janela.pack()

        #Nome

        #Adicionando o Label
        self.label_nome = Label(self.frame_nome, text='Nome do colaborador(a):')

        #Adicionando o Entry
        self.usuario= Entry(self.frame_nome,width=80,font='Calibri',textvariable=self.nome)#width= número de caracteres que é possóvel digitar
        self.usuario.bind('<Key>', (lambda _: self.salva_dados()))

        #Empacotando os dados do frame
        self.label_nome.pack(side='left')
        self.usuario.pack(side='left')

        #CPF
        # Adicionando o Label
        self.label_cpf = Label(self.frame_cpf, text='CPF:')

        # Adicionando o ENTRY
        self.cpf = Entry(self.frame_cpf, width=88,textvariable=self.cpf)  # width= número de caracteres que é possóvel digitar
        self.cpf.bind('<Key>', (lambda _: self.salva_dados()))

        # Empacotando os dados do frame
        self.label_cpf.pack(side='left')
        self.cpf.pack(side='left')

        #calendario:

        self.label_data=Label(self.frame_data,text='Data de entrega')
        self.botao_data=tk.Button(self.frame_data, text="Selecionar", command=self.janela)

        # empacotando data
        self.label_data.pack(side='left')
        self.botao_data.pack(side='left')

        #Botão de salvar
        self.botao_salvar=tk.Button(self.frame_salvar,text='Salvar',comand=self.file_dialog)
        self.botao_salvar.pack(side='bottom')

        #Empacotando os frames
        self.frame_titulo_janela.pack()
        self.frame_nome.pack()
        self.frame_cpf.pack()
        self.frame_data.pack()
        self.frame_salvar.pack()


        self.janela_termo.mainloop()



    def janela(self):
        global Data
        self.janela_calendario=tk.Tk()
        self.frame_titulo=Frame(self.janela_calendario)
        self.frame_calendario=Frame(self.janela_calendario)

        #Colocando Label
        self.label_titulo=Label(self.frame_titulo,text='Data de entrega')


        # Colocando calendario
        #Empacotando

        self.label_titulo.pack()
        self.frame_titulo.pack()
        calendario(self.janela_calendario)
        #self.quit.pack(side='left')
       # self.cal.pack(side='left')
        self.frame_calendario.pack()
    def salva_dados(self):
        global Nome,CPF,Patrimonio,Modelo,Mouse,Cadeado,Teclado
        Nome = self.usuario.get()
        CPF=self.cpf.get()

    def retorna_data(self):
        global Data
        self.data=formatando_data(Data)
        return self.data
    def file_dialog(self):
        global Endereço
        Tk().withdraw()  # Isto torna oculto a janela principal
        Endereço = filedialog.askdirectory()  # Isto te permite selecionar um arquivo
        print(Endereço)


obj=termos()

image.png.a5c26cc6c472194f261ed20e60eec5aa.png

Capturar.PNG

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...