0

How to fix 'IntVar' object cannot be interpreted as an integer? I'm making a GUI password generator based on my old console generator. After pressing "Generate" button, i getting that error.

import random
import string
from tkinter import *
from tkinter import ttk

tkWindow = Tk()  
tkWindow.geometry('250x150')  
tkWindow.title('Password Generator')

characters = list(string.ascii_letters + string.digits + "!@#$%^&*()")

def passgen():

    random.shuffle(characters)

    password = []
    for i in range(length):
        password.append(random.choice(characters))

    random.shuffle(password)

    print("".join(password))

lengthLabel = Label(tkWindow, text="Password length:").grid(row=0, column=0)
length = IntVar()
lengthEntry = Entry(tkWindow, textvariable=length).grid(row=0, column=1)

GenButton = Button(tkWindow, text="Generate", command=passgen).grid(row=1, column=0) 

tkWindow.mainloop()
Bryan Oakley
  • 370,779
  • 53
  • 539
  • 685
Galuxosi
  • 13
  • 3

1 Answers1

1

Use length.get() in for loop present in passgen() method instead of length only. Like this:

    for i in range(length.get()):
        password.append(random.choice(characters))
Mujtaba Mateen
  • 202
  • 2
  • 7