Oluşturduğumuz parolayı kopyalamak için yani clipboard kopyalama fonksiyonunu kullanmak için 'pyperclip' kütüphanesini kullanacağız. Açılan sitede 'pyperclip' kütüphanesinin nasıl kurulacağını okuyabilirsiniz.
Penceremizi Yaratmak
Pencereyi yaratmadan önce uygulamamıza dahil etmemiz gereken Tkinter hariç 3 kütüphane var. Ve daha sonra sınıfımızı oluşturacağız.
import random
import string
import pyperclip
from tkinter import *
class Main:
def __init__(self, master):
self.master = master
master.title('Parola Oluşturucu')
self.parolaUzunluguL = Label(master, text="parola uzunluğu:")
self.parolaUzunluguL.grid(row=0, column=0, pady=4, padx=12, sticky=EW)
self.defaultValue = StringVar(master, '8')
self.parolaUzunluguE = Entry(master, textvariable=self.defaultValue)
self.parolaUzunluguE.grid(row=0, column=1,columnspan=2, padx=12, sticky=E)
self.harfBool = IntVar()
self.harfBool.set(True)
self.checkHarf = Checkbutton(master, text="harfler", variable = self.harfBool)
self.checkHarf.grid(row=1, column=0, pady=4, sticky=EW)
self.rakamBool = IntVar()
self.rakamBool.set(True)
self.checkRakam = Checkbutton(master, text="rakamlar", variable=self.rakamBool)
self.checkRakam.grid(row=1, column=1, pady=4, sticky=EW)
self.noktalamaBool = IntVar()
self.noktalamaBool.set(True)
self.checkNoktalama = Checkbutton(master, text="noktalamalar", variable=self.noktalamaBool)
self.checkNoktalama.grid(row=1, column=2, pady=4, sticky=EW)
self.olusturB = Button(master, text='oluştur', command=self.parolaOlustur)
self.olusturB.grid(pady=4, padx=12, sticky=EW, columnspan=3, row=2, column=0)
self.olusturulanParola = Entry(master)
self.olusturulanParola.grid(pady=8, padx=12, row=3, column=0, columnspan=2, sticky= EW)
self.kopyala = Button(master, text="kopyala", command = self.parolayiKopyala)
self.kopyala.grid(pady=8, padx=12, row=3, column=2, sticky=EW)
root = Tk()
main = Main(root)
root.mainloop()
Gerekli Methodları Yazmak
1-Parola Oluşturma Methodu:
Parola oluştururken ilk önce kullanıcımızın istediği parola uzunluğunu Entry widget'ından alacağız. Burada Entry'den aldığımız veriyi integer tipine dönüştürmemiz gerekiyor. Daha sonra karakter setlerini Checkbox değerlerine göre belirleyeceğiz. Eğer rakamlar CheckBox'u seçili değilse, rakamlar değişkenimiz boş olacak. Ve diğer ikisini de böyle belirliyoruz. For döngüsü ile rastgele seçtiğimiz karakterleri parola değişkenimize ekleyeceğiz. Ve en sonunda oluşturulan parolayı göstereceğimiz Entry'e bunu yazacağız.
def parolaOlustur(self):
parolaUzunlugu = int(self.parolaUzunluguE.get())
harfler = string.ascii_letters if self.harfBool.get() else ""
rakamlar = string.digits if self.rakamBool.get() else ""
noktalama = string.punctuation if self.noktalamaBool.get() else ""
parola = ""
for i in range(parolaUzunlugu):
randChar = random.choice(harfler+rakamlar+noktalama)
parola += randChar
self.olusturulanParola.delete(0, END)
self.olusturulanParola.insert(END, parola)
2-Oluşan Parolayı Clipboard'a Kopyalamak:
Oluşturduğumuz ve Entry widget'ına yazdırdığımız parolayı kullanıcının daha kolay kullanması için 'pyperclip' kütüphanesini kullanarak kopyalama işlemini yapacağız. Tabii bunun için önce pyperclip kütüphanesi yüklememiz gerekiyor. Yükledikten sonra uygulama içinde kullanabiliriz. Böyle işlemleri daha kolay yapmak için PyCharm IDE'sini kullanabilirsiniz ki ben öyle yapıyorum. PyCharm'ın ücretsiz Community Edition'u mevcut.
def parolayiKopyala(self):
pyperclip.copy(self.olusturulanParola.get())
Programımızın Son Hali
import random
import string
import pyperclip
from tkinter import *
class Main:
def __init__(self, master):
self.master = master
master.title('Parola Oluşturucu')
self.parolaUzunluguL = Label(master, text="parola uzunluğu:")
self.parolaUzunluguL.grid(row=0, column=0, pady=4, padx=12, sticky=EW)
self.defaultValue = StringVar(master, '8')
self.parolaUzunluguE = Entry(master, textvariable=self.defaultValue)
self.parolaUzunluguE.grid(row=0, column=1,columnspan=2, padx=12, sticky=E)
self.harfBool = IntVar()
self.harfBool.set(True)
self.checkHarf = Checkbutton(master, text="harfler", variable = self.harfBool)
self.checkHarf.grid(row=1, column=0, pady=4, sticky=EW)
self.rakamBool = IntVar()
self.rakamBool.set(True)
self.checkRakam = Checkbutton(master, text="rakamlar", variable=self.rakamBool)
self.checkRakam.grid(row=1, column=1, pady=4, sticky=EW)
self.noktalamaBool = IntVar()
self.noktalamaBool.set(True)
self.checkNoktalama = Checkbutton(master, text="noktalamalar", variable=self.noktalamaBool)
self.checkNoktalama.grid(row=1, column=2, pady=4, sticky=EW)
self.olusturB = Button(master, text='oluştur', command=self.parolaOlustur)
self.olusturB.grid(pady=4, padx=12, sticky=EW, columnspan=3, row=2, column=0)
self.olusturulanParola = Entry(master)
self.olusturulanParola.grid(pady=8, padx=12, row=3, column=0, columnspan=2, sticky= EW)
self.kopyala = Button(master, text="kopyala", command = self.parolayiKopyala)
self.kopyala.grid(pady=8, padx=12, row=3, column=2, sticky=EW)
self.kodlardan1Blog = Button(master, text="kodlardan 1 blog")
self.kodlardan1Blog.grid(row=4, sticky = EW, column=0, columnspan=3, pady=8, padx=12)
def parolaOlustur(self):
parolaUzunlugu = int(self.parolaUzunluguE.get())
harfler = string.ascii_letters if self.harfBool.get() else ""
rakamlar = string.digits if self.rakamBool.get() else ""
noktalama = string.punctuation if self.noktalamaBool.get() else ""
parola = ""
for i in range(parolaUzunlugu):
randChar = random.choice(harfler+rakamlar+noktalama)
parola += randChar
self.olusturulanParola.delete(0, END)
self.olusturulanParola.insert(END, parola)
def parolayiKopyala(self):
pyperclip.copy(self.olusturulanParola.get())
root = Tk()
main = Main(root)
root.mainloop()
2 Yorumlar
abi error veriyo
YanıtlaSilPyperclip kütüphanesini yüklediğinizden emin olun lütfen.
Sil