Jump to content

Tkinter


Gust
 Share

Recommended Posts

Eu queria começar a dar uns toques no Tkinter e escolhi um criador de chaves do euromilhoes.

Este é o codigo:

import random
from Tkinter import *
from sys import exit

def sair():
    exit()
    
def main():
    #Escolhe os numeros e organiza-os
    numeros = range(1, 51)
    estrelas = range(1, 11)
    while len(numeros) > 5:
        numero = random.choice(numeros)
        numeros.remove(numero)
    while len(estrelas) > 2:
        estrela = random.choice(estrelas)
        estrelas.remove(estrela)
    numeros.sort()
    estrelas.sort()
    labela(numeros, estrelas)

def labela(numeros, estrelas):
    numero1 = Label(principal, text=numeros[0], relief=RAISED).pack()
    numero2 = Label(principal, text=numeros[1], relief=RAISED).pack()
    numero3 = Label(principal, text=numeros[2], relief=RAISED).pack()
    numero4 = Label(principal, text=numeros[3], relief=RAISED).pack()
    numero5 = Label(principal, text=numeros[4], relief=RAISED).pack()
    estrela1 = Label(principal, text=estrelas[0], relief=RAISED).pack()
    estrela2 = Label(principal, text=estrelas[1], relief=RAISED).pack()
    
if __name__ == "__main__":
    #Interface grafica
    principal = Tk()
    Button(principal, text="Chave", command=main()).pack()
    Button(principal, text="Sair", command=sair()).pack()
    principal.mainloop()

O problema é que sempre que eu corro  o prgm ele excuta as funções uma vez.

Os botões funcionam bem e tudo, mas ele termina logo na primeira execução.

Não liguem à apresentação depois melhoro-a. "Labela" foi à falta de melhor.

Obrigado pela atenção.

"A computer program it's a world, the programmer its God"

Link to comment
Share on other sites

Eu nunca usei o Tkinter (uso o wxPython) mas pelo que vejo o erro está no quit.


Estive a pesquisar e a aprender os básicos de Tkinter, já consegui criar uma versão que funciona bem comigo.

Atenção que se correres a aplicação apartir do IDLE quando carregas no Sair a aplicação não fecha totalmente.

import random
from Tkinter import *

def main():
    #Escolhe os numeros e organiza-os
    numeros = range(1, 51)
    estrelas = range(1, 11)
    while len(numeros) > 5:
        numero = random.choice(numeros)
        numeros.remove(numero)
    while len(estrelas) > 2:
        estrela = random.choice(estrelas)
        estrelas.remove(estrela)
    numeros.sort()
    estrelas.sort()
    labela(numeros, estrelas)

def labela(numeros, estrelas):
    numero1 = Label(F, text=numeros[0], relief=RAISED)
    numero1.pack()
    numero2 = Label(F, text=numeros[1], relief=RAISED)
    numero2.pack()
    numero3 = Label(F, text=numeros[2], relief=RAISED)
    numero3.pack()
    numero4 = Label(F, text=numeros[3], relief=RAISED)
    numero4.pack()
    numero5 = Label(F, text=numeros[4], relief=RAISED)
    numero5.pack()
    estrela1 = Label(F, text=estrelas[0], relief=RAISED)
    estrela1.pack()
    estrela2 = Label(F, text=estrelas[1], relief=RAISED)
    estrela2.pack()
    
if __name__ == "__main__":
    #Interface grafica
    principal = Tk()
    F = Frame(principal)
    F.pack()
    butao1 = Button(F, text="Chave", command=main)
    butao1.pack()
    butao2 = Button(F, text="Sair", command=F.quit)
    butao2.pack()
    principal.mainloop()

<3 life

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.