Facebook
From saffas, 2 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 147
  1. import tkinter as tk
  2. from tkinter import messagebox
  3. import random
  4. import string
  5.  
  6. class AplikacjaPracownika(tk.Tk):
  7.     def __init__(self):
  8.         super().__init__()
  9.         self.title("Dodaj pracownika")
  10.         self.geometry("600x300")
  11.         self.configure(bg="#B0C4DE")
  12.  
  13.         self.ramka_pracownika = tk.LabelFrame(self, bg="#B0C4DE", padx=10, pady=10, text="Dodaj Pracownika")
  14.         self.ramka_pracownika.grid(row=0, column=0, padx=10, pady=10)
  15.  
  16.         self.nazwa_label = tk.Label(self.ramka_pracownika, text="Imię:", bg="#B0C4DE")
  17.         self.nazwa_label.grid(row=0, column=0, sticky="w")
  18.         self.nazwa_entry = tk.Entry(self.ramka_pracownika)
  19.         self.nazwa_entry.grid(row=0, column=1)
  20.  
  21.         self.nazwisko_label = tk.Label(self.ramka_pracownika, text="Nazwisko:", bg="#B0C4DE")
  22.         self.nazwisko_label.grid(row=1, column=0, sticky="w")
  23.         self.nazwisko_entry = tk.Entry(self.ramka_pracownika)
  24.         self.nazwisko_entry.grid(row=1, column=1)
  25.  
  26.         self.stanowisko_label = tk.Label(self.ramka_pracownika, text="Stanowisko:", bg="#B0C4DE")
  27.         self.stanowisko_label.grid(row=2, column=0, sticky="w")
  28.         self.stanowisko_var = tk.StringVar()
  29.         self.stanowisko_combobox = tk.OptionMenu(self.ramka_pracownika, self.stanowisko_var, "Kierownik", "Starszy programista", "Młodszy programista", "Tester")
  30.         self.stanowisko_combobox.grid(row=2, column=1, sticky="ew")
  31.  
  32.         self.ramka_hasla = tk.LabelFrame(self, bg="#B0C4DE", padx=10, pady=10, text="Generowanie hasła")
  33.         self.ramka_hasla.grid(row=0, column=1, padx=10, pady=10)
  34.  
  35.         self.dlugosc_hasla_label = tk.Label(self.ramka_hasla, text="Ile znaków?", bg="#B0C4DE")
  36.         self.dlugosc_hasla_label.grid(row=0, column=0, sticky="w")
  37.         self.dlugosc_hasla_entry = tk.Entry(self.ramka_hasla)
  38.         self.dlugosc_hasla_entry.grid(row=0, column=1)
  39.  
  40.         self.male_wielkie_litery_var = tk.IntVar()
  41.         self.male_wielkie_litery_checkbox = tk.Checkbutton(self.ramka_hasla, text="Małe i wielkie litery", variable=self.male_wielkie_litery_var, bg="#B0C4DE")
  42.         self.male_wielkie_litery_checkbox.grid(row=1, column=0, sticky="w")
  43.  
  44.         self.cyfry_var = tk.IntVar()
  45.         self.cyfry_checkbox = tk.Checkbutton(self.ramka_hasla, text="Cyfry", variable=self.cyfry_var, bg="#B0C4DE")
  46.         self.cyfry_checkbox.grid(row=2, column=0, sticky="w")
  47.  
  48.         self.znaki_specjalne_var = tk.IntVar()
  49.         self.znaki_specjalne_checkbox = tk.Checkbutton(self.ramka_hasla, text="Znaki specjalne", variable=self.znaki_specjalne_var, bg="#B0C4DE")
  50.         self.znaki_specjalne_checkbox.grid(row=3, column=0, sticky="w")
  51.  
  52.         self.generuj_haslo_button = tk.Button(self.ramka_hasla, text="Generuj hasło", command=self.generuj_haslo, bg="#4682B4", fg="white")
  53.         self.generuj_haslo_button.grid(row=4, column=0, columnspan=2, pady=5, sticky="ew")
  54.  
  55.         self.potwierdz_button = tk.Button(self, text="Zatwierdź", command=self.pokaz_dane_pracownika, bg="#4682B4", fg="white")
  56.         self.potwierdz_button.grid(row=1, column=0, columnspan=2, pady=10, sticky="ew")
  57.         self.wylosowane_haslo=""
  58.  
  59.     def generuj_haslo(self):
  60.         dlugosc = self.dlugosc_hasla_entry.get()
  61.         if not dlugosc.isdigit():
  62.             messagebox.showerror("Błąd", "Długość hasła musi być liczbą całkowitą.")
  63.             return
  64.  
  65.         dlugosc = int(dlugosc)
  66.         if dlugosc <= 0:
  67.             messagebox.showerror("Błąd", "Długość hasła musi być większa od zera.")
  68.             return
  69.  
  70.         znaki = ''
  71.         if self.male_wielkie_litery_var.get():
  72.             znaki += string.ascii_letters
  73.         if self.cyfry_var.get():
  74.             znaki += string.digits
  75.         if self.znaki_specjalne_var.get():
  76.             znaki += "!@#$%^&*()_+-="
  77.  
  78.         if not znaki:
  79.             messagebox.showerror("Błąd", "Proszę wybrać przynajmniej jeden rodzaj znaków do generowania hasła.")
  80.             return
  81.  
  82.         haslo = ''.join(random.choice(znaki) for _ in range(dlugosc))
  83.         self.wylosowane_haslo=haslo
  84.         messagebox.showinfo("Generowane hasło", f"Twoje hasło to: {haslo}")
  85.  
  86.     def pokaz_dane_pracownika(self):
  87.         nazwa = self.nazwa_entry.get()
  88.         nazwisko = self.nazwisko_entry.get()
  89.         stanowisko = self.stanowisko_var.get()
  90.         hasloo=self.wylosowane_haslo
  91.  
  92.         messagebox.showinfo("Dane pracownika", f"Imię: {nazwa}\nNazwisko: {nazwisko}\nStanowisko: {stanowisko} \nHaslo: {hasloo}")
  93.  
  94. if __name__ == "__main__":
  95.     app = AplikacjaPracownika()
  96.     app.mainloop()
  97.  
  98.  
  99.