Tryb "minimalne poprawki maksimum efektu". Oczywiście można o wiele bardziej estetycznie, ale na przyszłość proszę podaj także choćby "kadłubek" modułu tak bym nie pisał pustych funkcji. Nie widzę całości aplikacji więc nie sugerowałem dziedziczenia z Frame. Myśle jednak że to jest rozsądne. Także sam konstruktor może kończyć się wejściem w pętlę zdarzeń. Nie widząc jednak całości aplikacji, nie implementowałem tego. Nie wiem czy to będzie główna klasa całości aplikacji
from tkinter import *
import PasswordGenerator as pass_gen
class PasswordProgram:
def __init__(self):
self._root = Tk();
self._root.title("Hasło")
self._topFrame = Frame(self._root)
self._topFrame.grid(row = 0, column = 0)
def startProgram(self):
button1 = Button(self._topFrame, text="Kliknij aby rozpocząć program", command=self.choiceButtons, bg="#53536d", fg="#e0abdd")
button1.grid(row=0)
self._root.mainloop()
def choiceButtons(self):
button1 = Button(self._topFrame, text="Wygeneruj hasło automatycznie", command=pass_gen.password_main_question, bg="#53536d", fg="#e0abdd")
button2 = Button(self._topFrame, text="Ustaw parametry dla hasła", command=pass_gen.password_main_parameters, bg="#53536d", fg="#e0abdd")
button1.grid(row=0)
button2.grid(row=0, column=1)
def passwordTypeButtons(self):
button1 = Button(self._topFrame, text="x", command=pass_gen.unbreak_password, bg="#53536d", fg="#e0abdd")
button2 = Button(self._topFrame, text="y", command=pass_gen.strong_password, bg="#53536d", fg="#e0abdd")
button3 = Button(self._topFrame, text="z", command=pass_gen.normal_password, bg="#53536d", fg="#e0abdd")
entry_1 = Entry(self._root)
entry_1.grid(row=1)
button1.grid(row=0)
button2.grid(row=0, column=1)
button3.grid(row=0, column=2)
if __name__ == '__main__':
pwProgram = PasswordProgram()
pwProgram.startProgram()