Problema confronto Int / IntVar

di il
1 risposte

Problema confronto Int / IntVar

Ciao a tutti, sono nuovo del forum e del mondo della programmazione...
Qualche anno fa hanno cominciato a studiare Python ma poi lper motivi vari ho mollato...
Ora l'ho preso e sono riuscito ad andare più avanti di allora e sono arrivato, anche se pur arrancando, alla creazione di GUI con Tkinter...
Ora per prova stavo tentando di creare un generatore di password casuali e,da linea di comando, ci ero riuscito, ma il problema è sopraggiunto una volta che ho provato a rivestirlo con una GUI...

Vi posto il listato e a seguire l'errore:

from tkinter import *
from random import *


def gen_pass():
    i = 0
    lista = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "z",
             "A", "B", "C", "D", "E", "F", "G", "H", "I", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "Z",
             1, 2, 3, 4, 5, 6, 7, 8, 9, 0, "_", "-", "!"]
    while i < a:
        parola = random.choice(lista)

        lblRisultato['text'] = parola
        i = i + 1


root = Tk()
root['background'] = "#808080"
root.geometry("500x250+450+250")
root.title("GenPass by Argwin")

a = IntVar()

lblDescrizione = Label(root, text="Genera la tua password casuale.", font="Vivaldi 20", fg="#FFFFFF", bg="#808080")
lblDescrizione.pack()

lblSpaziatore = Label(root, text="", bg="#808080")
lblSpaziatore.pack()

lbl1 = Label(root, text="Di quanti caratteri vuoi che sia formata la password?", bg="#808080")
lbl1.pack()

lblSpaziatore = Label(root, text="", bg="#808080")
lblSpaziatore.pack()

casellaInserimento = Entry(root, textvariable=a)
casellaInserimento.pack()

lblSpaziatore = Label(root, text="", bg="#808080")
lblSpaziatore.pack()

btnInvio = Button(root, text="Genera password", command=gen_pass)
btnInvio.pack()

lblSpaziatore = Label(root, text="", bg="#808080")
lblSpaziatore.pack()

lblRisultato = Label(bg="white", width=50)
lblRisultato.pack()

root.mainloop()
Errore:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\David\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "C:/Users/David/PycharmProjects/Prove/prov.py", line 10, in gen_pass
while i < a:
TypeError: '<' not supported between instances of 'int' and 'IntVar'
Da quanto ho capito non posso effettuare un confronto tra un int ed un intvar ma non ho idea allora di come reperire l'informazione dall'utente per darlo come limite del ciclo...

Spero qualcuno di voi possa aiutarmi...

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte