import tkinter as tk from tkinter import messagebox import random import string class AplikacjaPracownika(tk.Tk): def __init__(self): super().__init__() self.title("Dodaj pracownika") self.geometry("600x300") self.configure(bg="#B0C4DE") self.ramka_pracownika = tk.LabelFrame(self, bg="#B0C4DE", padx=10, pady=10, text="Dodaj Pracownika") self.ramka_pracownika.grid(row=0, column=0, padx=10, pady=10) self.nazwa_label = tk.Label(self.ramka_pracownika, text="Imię:", bg="#B0C4DE") self.nazwa_label.grid(row=0, column=0, sticky="w") self.nazwa_entry = tk.Entry(self.ramka_pracownika) self.nazwa_entry.grid(row=0, column=1) self.nazwisko_label = tk.Label(self.ramka_pracownika, text="Nazwisko:", bg="#B0C4DE") self.nazwisko_label.grid(row=1, column=0, sticky="w") self.nazwisko_entry = tk.Entry(self.ramka_pracownika) self.nazwisko_entry.grid(row=1, column=1) self.stanowisko_label = tk.Label(self.ramka_pracownika, text="Stanowisko:", bg="#B0C4DE") self.stanowisko_label.grid(row=2, column=0, sticky="w") self.stanowisko_var = tk.StringVar() self.stanowisko_combobox = tk.OptionMenu(self.ramka_pracownika, self.stanowisko_var, "Kierownik", "Starszy programista", "Młodszy programista", "Tester") self.stanowisko_combobox.grid(row=2, column=1, sticky="ew") self.ramka_hasla = tk.LabelFrame(self, bg="#B0C4DE", padx=10, pady=10, text="Generowanie hasła") self.ramka_hasla.grid(row=0, column=1, padx=10, pady=10) self.dlugosc_hasla_label = tk.Label(self.ramka_hasla, text="Ile znaków?", bg="#B0C4DE") self.dlugosc_hasla_label.grid(row=0, column=0, sticky="w") self.dlugosc_hasla_entry = tk.Entry(self.ramka_hasla) self.dlugosc_hasla_entry.grid(row=0, column=1) self.male_wielkie_litery_var = tk.IntVar() self.male_wielkie_litery_checkbox = tk.Checkbutton(self.ramka_hasla, text="Małe i wielkie litery", variable=self.male_wielkie_litery_var, bg="#B0C4DE") self.male_wielkie_litery_checkbox.grid(row=1, column=0, sticky="w") self.cyfry_var = tk.IntVar() self.cyfry_checkbox = tk.Checkbutton(self.ramka_hasla, text="Cyfry", variable=self.cyfry_var, bg="#B0C4DE") self.cyfry_checkbox.grid(row=2, column=0, sticky="w") self.znaki_specjalne_var = tk.IntVar() self.znaki_specjalne_checkbox = tk.Checkbutton(self.ramka_hasla, text="Znaki specjalne", variable=self.znaki_specjalne_var, bg="#B0C4DE") self.znaki_specjalne_checkbox.grid(row=3, column=0, sticky="w") self.generuj_haslo_button = tk.Button(self.ramka_hasla, text="Generuj hasło", command=self.generuj_haslo, bg="#4682B4", fg="white") self.generuj_haslo_button.grid(row=4, column=0, columnspan=2, pady=5, sticky="ew") self.potwierdz_button = tk.Button(self, text="Zatwierdź", command=self.pokaz_dane_pracownika, bg="#4682B4", fg="white") self.potwierdz_button.grid(row=1, column=0, columnspan=2, pady=10, sticky="ew") self.wylosowane_haslo="" def generuj_haslo(self): dlugosc = int(self.dlugosc_hasla_entry.get()) znaki = '' if self.male_wielkie_litery_var.get(): znaki += string.ascii_letters if self.cyfry_var.get(): znaki += string.digits if self.znaki_specjalne_var.get(): znaki += "!@#$%^&*()_+-=" if not znaki: messagebox.showerror("Błąd", "Proszę wybrać przynajmniej jeden rodzaj znaków do generowania hasła.") return haslo = ''.join(random.choice(znaki) for _ in range(dlugosc)) self.wylosowane_haslo=haslo messagebox.showinfo("Generowane hasło", f"Twoje hasło to: {haslo}") def pokaz_dane_pracownika(self): nazwa = self.nazwa_entry.get() nazwisko = self.nazwisko_entry.get() stanowisko = self.stanowisko_var.get() hasloo=self.wylosowane_haslo messagebox.showinfo("Dane pracownika", f"Imię: {nazwa}\nNazwisko: {nazwisko}\nStanowisko: {stanowisko} \nHaslo: {hasloo}") if __name__ == "__main__": app = AplikacjaPracownika() app.mainloop()