Checkbutton - I can’t leave just one option checked..... when I mark an option in step 15 marks all together.... Someone can help me...

Asked

Viewed 53 times

1

passo = 0
msg = 'Iniciar Nova Classificação'
msg_button = 'Sim'
dados = ' '
dd = ' '
mm = ' '
aa = ' '
barra01 = ' '
barra02 = ' '
ckb1 = ' '
ckb2 = ' '
ckb3 = ' '
ckb4 = ' '

sim = False
nao = False
forte = False
fraco = False

class Dados ():
    """Tentando modelar uma Classe"""
    def __init__(self,frigorifico,carimbo,dataabate,datadescarne,
    horainiciodescarne,horafimdescarne,courosavaliados,avaliador,
    problemasdeconservacao,fortefraco,quantidadenf):
        self.frigorifico = frigorifico
        self.carimbo = carimbo
        self.dataabate = dataabate
        self.datadescarne = datadescarne
        self.horainiciodescarne = horainiciodescarne
        self.horafimdescarne = horafimdescarne
        self.courosavaliados = courosavaliados
        self.avaliador = avaliador
        self.problemasdeconservacao = problemasdeconservacao
        self.fortefraco = fortefraco
        self.quantidadenf = quantidadenf

def ativasim () :
    global Dados
    global sim
    global nao

    sim = True
    nao = False

    Dados.problemasdeconservacao = 'Sim'

def ativanao () :
    global Dados
    global sim
    global nao

    nao = True
    sim = False

    Dados.problemasdeconservacao = 'Não'

def ativaforte () :
    global Dados
    global forte
    global fraco

    forte = True
    fraco = False

    Dados.fortefraco = 'Forte'

def ativafraco () :
    global Dados
    global forte
    global fraco

    fraco = True
    forte = False

    Dados.fortefraco = 'Fraco'

def proximo ():
    global passo

    if (passo < 20):
        passo += 1  

    proximopasso ()

def proximopasso ():
    global Dados
    global passo
    global msg
    global msg_button
    global dados
    global dd
    global mm
    global aa
    global barra01
    global barra02
    global ckb1
    global ckb2
    global ckb3
    global ckb4
    global sim
    global nao
    global fraco
    global forte

    if (passo == 1) :
        texto01['text'] = 'Digite o Frigorifico:'
        b1['text'] = 'OK'
        dados = Entry (quadro01,font = 'Arial 36', width = 20)
        dados.pack(side = LEFT)
        dados.focus_force()
    elif (passo == 2):
        Dados.frigorifico = dados.get()     
        dados.destroy()
        proximo()

    elif(passo == 3) :
        texto01['text'] = 'Digite o Carimbo:'
        dados = Entry (quadro01,font = 'Arial 36', width = 8)
        dados.pack(side = LEFT)
        dados.focus_force()
    elif (passo == 4):
        Dados.carimbo = dados.get()     
        dados.destroy()
        proximo()

    elif (passo == 5) :
        texto01['text'] = 'Digite a Data do Abate:'
        dd = Entry (quadro01,font = 'Arial 36', width = 2)
        dd.place(x = 20,y = 65)
        barra01 = Label (quadro01, text = '/', font = 'Arial 36 bold', fg = 'blue')
        barra01.place (x = 81, y = 65)
        mm = Entry (quadro01,font = 'Arial 36', width = 2)
        mm.place(x = 100,y = 65)
        barra02 = Label (quadro01, text = '/', font = 'Arial 36 bold', fg = 'blue')
        barra02.place (x = 161, y = 65)
        aa = Entry (quadro01,font = 'Arial 36', width = 4)
        aa.place(x = 180,y = 65)
        dd.focus_force()
    elif (passo == 6):      
        Dados.dataabate = dd.get() + '/' + mm.get() + '/' + aa.get()        
        print (Dados.dataabate)
        dd.destroy()
        mm.destroy()
        aa.destroy()
        barra01.destroy()
        barra02.destroy()
        proximo()

    elif (passo == 7) :
        texto01['text'] = 'Digite a Data do Descarne:'
        dd = Entry (quadro01,font = 'Arial 36', width = 2)
        dd.place(x = 20,y = 65)
        barra01 = Label (quadro01, text = '/', font = 'Arial 36 bold', fg = 'blue')
        barra01.place (x = 81, y = 65)
        mm = Entry (quadro01,font = 'Arial 36', width = 2)
        mm.place(x = 100,y = 65)
        barra02 = Label (quadro01, text = '/', font = 'Arial 36 bold', fg = 'blue')
        barra02.place (x = 161, y = 65)
        aa = Entry (quadro01,font = 'Arial 36', width = 4)
        aa.place(x = 180,y = 65)
        dd.focus_force()
    elif (passo == 8):      
        Dados.datadescarne = dd.get() + '/' + mm.get() + '/' + aa.get()     
        dd.destroy()
        mm.destroy()
        aa.destroy()
        barra01.destroy()
        barra02.destroy()
        proximo()

    elif (passo == 9) :
        texto01['text'] = 'Digite a Hora do Inicio do Descarne:'
        dd = Entry (quadro01,font = 'Arial 36', width = 2)
        dd.place(x = 20,y = 65)
        barra01 = Label (quadro01, text = ':', font = 'Arial 36 bold', fg = 'blue')
        barra01.place (x = 81, y = 65)
        mm = Entry (quadro01,font = 'Arial 36', width = 2)
        mm.place(x = 100,y = 65)
        dd.focus_force()
    elif (passo == 10):     
        Dados.horainiciodescarne = dd.get() + ':' + mm.get()        
        dd.destroy()
        mm.destroy()
        barra01.destroy()
        proximo()

    elif (passo == 11) :
        texto01['text'] = 'Digite o Nome do Avaliador:'
        dados = Entry (quadro01,font = 'Arial 36', width = 20)
        dados.pack(side = LEFT)
        dados.focus_force()
    elif (passo == 12):     
        Dados.avaliador = dados.get()       
        dados.destroy()
        proximo()

    elif (passo == 13) :
        texto01['text'] = 'Digite a Quantidade de Couros da Nota:'
        dados = Entry (quadro01,font = 'Arial 36', width = 4)
        dados.pack(side = LEFT)
        dados.focus_force()
    elif (passo == 14):     
        Dados.quantidadenf = dados.get()        
        dados.destroy()
        proximo()

    elif (passo == 15) :
        texto01['text'] = 'Couros com Problemas de Conservação:'
        ckb1 = Checkbutton(quadro01,text = 'SIM',font = 'Arial 18',variable = sim, command = ativasim ())
        ckb1.place(x = 20, y = 55)
        ckb2 = Checkbutton(quadro01,text = 'NÃO',font = 'Arial 18',variable = nao, command = ativanao ())
        ckb2.place(x = 20, y = 85)
        ckb3 = Checkbutton(quadro01,text = 'FORTE',font = 'Arial 18',variable = forte,command = ativaforte ())
        ckb3.place(x = 100, y = 55)
        ckb4 = Checkbutton(quadro01,text = 'FRACO',font = 'Arial 18',variable = fraco,command = ativafraco ())
        ckb4.place(x = 100, y = 85)
        ckb1.focus_force()
    elif (passo == 16) :
        print (Dados.problemasdeconservacao)
        print (Dados.fortefraco)
        ckb1.destroy()
        ckb2.destroy()
        ckb3.destroy()
        ckb4.destroy()
        texto01['text'] = '...Classificando...'
        b1['text'] = 'Finalizar'

    elif (passo == 17) :
        passo = 0
        texto01['text'] = 'Iniciar Classificação'
        b1['text'] = 'Sim'  

janela = Tk()
janela.geometry ('1480x650')
janela.title('Sistema de Classificação de Defeitos')

quadro01 = Frame (janela, width = 1480, height = 150,relief = 'raise', bd = 10)
quadro01.pack(side = TOP)

quadro02 = Frame (janela, width = 700, height = 500,relief = 'raise', bg = 'yellow', bd = 8)
quadro02.pack(side = LEFT)

quadro03 = Frame (janela, width = 700, height = 500,relief = 'raise', bg = 'purple', bd = 8)
quadro03.pack(side = RIGHT)

texto01 = Label (quadro01, text = msg, font = 'Arial 36 bold', fg = 'blue')
texto01.pack()

b1 = Button (quadro01, text = msg_button, font = 'Arial 24 bold',command = proximo)
b1.pack(side = RIGHT)

janela.mainloop()

Checkbutton ao marcar um marca todos juntos

No answers

Browser other questions tagged

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