ich habe einen kleinen Passwortgenerator geschrieben. Diesem möchte ich jetzt eine GUI basteln.
Der Code des Passwortgenerators sieht wie folgt aus:
Code: Alles auswählen
from random import randint
import string
KLEINBUCHSTABEN = list(string.ascii_lowercase)
GROSSBUCHSTABEN = list(string.ascii_uppercase)
ZAHLEN = list(string.digits)
SONDERZEICHEN = list(string.punctuation)
def erstelle_passwort(passwortlaenge, zeichen_liste):
passwort = ""
for i in range(passwortlaenge):
passwort += zeichen_liste[randint(0, len(zeichen_liste))]
#print(zeichen_liste[randint(0, len(zeichen_liste))], end ="")
print(passwort)
passwortlaenge = int(input("\nPasswortlänge: "))
zeichenauswahl = int(input(
"""\nWelche Zeichen sollen vorkommen?
1 - Nur Kleinbuchstaben
2 - Nur Großbuchstaben
3 - Nur Zahlen
4 - Nur Sonderzeichen
5 - Alle
Auswahl: """))
if zeichenauswahl == 1:
zeichen_liste = KLEINBUCHSTABEN
erstelle_passwort(passwortlaenge, zeichen_liste)
elif zeichenauswahl == 2:
zeichen_liste = GROSSBUCHSTABEN
erstelle_passwort(passwortlaenge, zeichen_liste)
elif zeichenauswahl == 3:
zeichen_liste = ZAHLEN
erstelle_passwort(passwortlaenge, zeichen_liste)
elif zeichenauswahl == 4:
zeichen_liste = SONDERZEICHEN
erstelle_passwort(passwortlaenge, zeichen_liste)
elif zeichenauswahl == 5:
zeichen_liste = KLEINBUCHSTABEN + GROSSBUCHSTABEN + ZAHLEN + SONDERZEICHEN
erstelle_passwort(passwortlaenge, zeichen_liste)
else:
print("Keine gültige Eingabe!")
Code: Alles auswählen
from tkinter import *
master = Tk()
Label(master, text="Passwortlaenge: ").grid(row=0, sticky=W)
eingabefeld_passwortlaenge = Entry(master).grid(row=1, sticky=W)
Label(master, text="Welche Zeichen soll das Passwort enthalten?").grid(row=2, sticky=W)
var1 = IntVar()
Checkbutton(master, text="Kleinbuchstaben", variable=var1).grid(row=3, sticky=W)
var2 = IntVar()
Checkbutton(master, text="Grossbuchstaben", variable=var2).grid(row=4, sticky=W)
var3 = IntVar()
Checkbutton(master, text="Zahlen", variable=var3).grid(row=5, sticky=W)
var4 = IntVar()
Checkbutton(master, text="Sonderzeichen", variable=var4).grid(row=6, sticky=W)
Button(master, text='Generate', command=erstelle_passwort(passwortlaenge, zeichen_liste).grid(row=7, sticky=W, pady=8))
ausgabefeld_passwort = Entry(master).grid(row=8, sticky=W)
mainloop()
Der Fehler wird in der Zeile ausgelöst, in der ich versuche das Entry auszulesen. Hier mal mein kompletter Code bis jetzt. Bin über JEDE Kritik dankbar.
Code: Alles auswählen
from tkinter import *
from random import randint
import string
KLEINBUCHSTABEN = list(string.ascii_lowercase)
GROSSBUCHSTABEN = list(string.ascii_uppercase)
ZAHLEN = list(string.digits)
SONDERZEICHEN = list(string.punctuation)
master = Tk()
def erstelle_passwort():
passwort = ""
passwortlaenge = eingabefeld_passwortlaenge.get()
zeichen_liste = KLEINBUCHSTABEN
for i in range(passwortlaenge):
passwort += zeichen_liste[randint(0, len(zeichen_liste))]
ausgabefeld_passwort.insert(passwort)
Label(master, text="Passwortlaenge: ").grid(row=0, sticky=W)
eingabefeld_passwortlaenge = Entry(master).grid(row=1, sticky=W)
Label(master, text="Welche Zeichen soll das Passwort enthalten?").grid(row=2, sticky=W)
var1 = IntVar()
Checkbutton(master, text="Kleinbuchstaben", variable=var1).grid(row=3, sticky=W)
var2 = IntVar()
Checkbutton(master, text="Grossbuchstaben", variable=var2).grid(row=4, sticky=W)
var3 = IntVar()
Checkbutton(master, text="Zahlen", variable=var3).grid(row=5, sticky=W)
var4 = IntVar()
Checkbutton(master, text="Sonderzeichen", variable=var4).grid(row=6, sticky=W)
Button(master, text='Generate', command=erstelle_passwort()).grid(row=7, sticky=W, pady=8)
ausgabefeld_passwort = Entry(master).grid(row=8, sticky=W)
mainloop()
Mit freundlichen Grüßen
Jankie