Eksemplet her er meget kompliceret og noget vi har arbejdet med over lang tid.
Det kræver kendskab til import af moduler, funktioner og ikke mindst tkinter.
# -*- coding: utf-8 -*-
# import af moduler
from tkinter import *
import string
import random
# FUNKTIONER
# randompassword funktionen
# modulet string bruges
def randompassword():
chars = string.ascii_uppercase + string.ascii_lowercase + string.digits + string.punctuation + string.octdigits
size = random.randint(8, 24)
return ''.join(random.choice(chars) for x in range(size))
# autogenerering af et password
def click():
output.delete(0.0, END) # <- afslutter password
definition = randompassword() #<- henter randompassword-funktionen
output.insert(END, definition) #<- skriver password
# gem passwords
def save():
# Skriver et enkelt password og gemmer i .txt-fil
f = open('secret_password.txt','w') #<- laver en tekst med filnavnet secret_password.txt på mappen, hvor programmet ligger. w = write
f.write(randompassword()) #<- skriver password til filen secret_password
f.close() #<- lukker teksten
# Skriver og gemmer nye passwords
f = open('passwords.txt','a') #<- Skriver filen passwords.txt og indsætter nye passwords. a = append.
f.write("\n" + randompassword()) #<- \n laver en ny linje til hvert password fra funktionen randompassword
f.close() #<- lukker teksten
# lukker programmet
def close_window():
window.destroy() # window.destroy er en funktion i tkinter som lukker et vindue.
exit() # afslutter
# TKINTER USER INTERFACE
window = Tk() # window tildeles Tk's attributer
window.title("Password Generator") # windows titel
window.resizable(False, False) # Vinduet låses fast og kan ikke skaleres.
# øverste label i row 1, column 0, sticky=W betyder at teksten står mod vest.
Label (window, text="Enter GENERATE button to generate a random password:", font="none 12 bold") .grid(row=1, column=0, sticky=W)
# knap som generere passwords. Den henter fra funktionen click under dens command.
Button(window, text="GENERATE", width=6, command=click) .grid(row=3, column=0, sticky=W)
# tekst som udsiger vores password
Label (window, text="\nYour password:", font="none 12 bold") .grid(row=4, column=0, sticky=W)
output = Text (window, width=75, height=6, wrap=WORD, background="white")
output.grid(row=5, column=0, columnspan=2, sticky=W)
# Tekst som lader os gemme passwords på .txt fil
Label (window, text="click to save password:", font="none 12 bold") .grid(row=6, column=0, sticky=W)
Button(window, text="Save", width=14, command=save) .grid(row=7, column=0, sticky=W)
# Exit programmet
Button(window, text="Exit", width=14, command=close_window) .grid(row=7, column=0, sticky=E)
# window starter og looper indtil Exit
window.mainloop()