import ttkbootstrap as ttk
import tkinter as tk
from ttkbootstrap.constants import *
from tkinter.filedialog import asksaveasfilename
harfler = {0:"a",1:"b",2:"c",3:"ç",4:"d",5:"e",6:"f",7:"g",8:"ğ",9:"h",10:"ı",11:"i",12:"j",13:"k",14:"l",15:"m",16:"n",17:"o",18:"ö",
19:"p",20:"r",21:"s",22:"ş",23:"t",24:"u",25:"ü",26:"v",27:"y",28:"z"}
def cozumle():
global cozumlenecek_metin,cozumlenmis_metin,spnbx,cozumle_btn
sira = 1
metin = cozumlenecek_metin.get("1.0",tk.END)
cozumlenecek_metin.delete("1.0",tk.END)
cozumlenmis_metin.delete("1.0",tk.END)
cozumle_btn["state"] = DISABLED
yeni_metin = ""
if len(metin) > 0:
while sira <= int(spnbx.get()):
for harf in metin.lower():
for i in harfler.keys():
if harf not in harfler.values():
yeni_metin += harf
break
if harf == harfler[i]:
if i + sira >= len(harfler):
mod = abs(29 - (i + sira))
yeni_metin += harfler[mod]
else:
yeni_metin += harfler[i + sira]
continue
sira += 1
yeni_metin += " - {} \n".format(sira - 1)
cozumlenmis_metin.insert(tk.END,yeni_metin)
yeni_metin = ""
cozumle_btn["state"] = ACTIVE
else:
print("Çözümlenecek bir metin giriniz.")
cozumle_btn["state"] = ACTIVE
def kaydet():
dizin = asksaveasfilename()
with open("{}.txt".format(dizin),"w") as ds:
ds.write(cozumlenmis_metin.get("1.0",tk.END))
ds.close()
pencere = tk.Tk()
ttk.Style("solar")
pencere.title("Sezar Çözücü")
pencere.geometry("600x480")
pencere.resizable(0,0)
cozumlenecek_metin = ttk.Text(width=20)
cozumlenecek_metin.grid(row=0,column=0,padx=10,pady=10)
cozumlenmis_metin = ttk.Text(width=20)
cozumlenmis_metin.grid(row=0,column=1,pady=10)
spnbx = ttk.Spinbox(bootstyle="warning",from_=1,to=29)
spnbx.insert(0,"1")
spnbx.configure(state="readonly")
spnbx.grid(row=0,column=2,padx=10)
cozumle_btn = ttk.Button(text="Çözümle",bootstyle="warning",command=cozumle)
cozumle_btn.grid(row=1,column=0)
kaydet_btn = ttk.Button(text="Kaydet",bootstyle="warning",command=kaydet).grid(row=1,column=1)
pencere.mainloop()