tkinter ile oluşturulan bir metin(text) sayfasına girilen yazılardan belli bir sayının üstünde tekrarlayanları nasıl yeni bir metin sayfasında yazdırabiliriz.
import tkinter as tk
def fonksiyon(text:str):
root = tk.Tk()
root.geometry("300x300")
root.config(bg="gray17")
textBox1 = tk.Text(root,width=30,height=10)
textBox1.pack()
textBox1.insert(0.0,text)
textBox2 = tk.Text(root,width=30,height=10,bg="green",fg="black")
textBox2.pack()
l = text.split(" ") # bir liste oluşturup cümledeki boşluklardan itibaren bu listenin içine atıyoruz
d = {} # boş bir sözlük tanımlıyoruz
for i in l: # for döngüsü oluşturuyoruz
if not i in d: # eğer i değişkeni d adlı değişkenin içinde yoksa/değilse
d[i] = 1 # o değeri "1" olarak ata
else: # şayet i değişkeni d adlı değişkenin içinde varsa/bulunuyorsa
d[i] += 1 # o değeri döngü boyunca 1 arttır
for j in d.keys(): # Bir for döngüsü daha bu sefer başta oluşturduğumuz sözlüğün anahtar değerleri için
textBox2.insert(0.0,f"{j} : {d[j]}\n") # Kullanıcı arayüzümüzdeki Text kutucuğunda gösteriyoruz
root.mainloop()
fonksiyon("bir berber bir berbere gel beraber bir berber dükkanı açalım demiş")
Buradan sonrasını katırlarla devam edebilirsiniz. (bug olabilir bu saatte de benden ancak bu çıkabilir İyi geceler)
3 Beğeni
from tkinter import *
pencere = Tk()
def tekrarSayfasi():
pencere2 = Toplevel()
pencere2.title("Tekrarlayan Kelimeler")
metin1 = Text(pencere2, width=60, height=25)
metin1.pack()
buton1 = Button(pencere2, text="Çıkış", command = exit, width=8)
buton1.pack()
canvas = Canvas(pencere2, height=20, width=20)
canvas.pack()
pencere.title("Kelime Sayıcı")
pencere.geometry("450x450")
metin = Text(pencere, width=60, height=25)
metin.pack()
buton =Button(text="Say", command = tekrarSayfasi, width=8)
buton.pack()
pencere.mainloop()
Ben aslında böyle bir şey yaptım ve amacım ilk açılan text sayfasına yapıştırdığım metinden sonra butona bastığımda ikinci text sayfasını açarak oraya tekrar eden kelimeleri yazdırmasıydı. Bir önceki sefer güzel açıklayamadım sanırım. verdiğiniz kodları buna ekleyerek yapmaya çalıştım fakat yapamadım.
from tkinter import *
def tekrarSayfasi(text):
pencere2 = Toplevel()
pencere2.title("Tekrarlayan Kelimeler")
metin1 = Text(pencere2, width=60, height=25)
metin1.pack()
buton1 = Button(pencere2, text="Çıkış", command = exit, width=8)
buton1.pack()
canvas = Canvas(pencere2, height=20, width=20)
canvas.pack()
l = text.lower().split(" ")
d = {}
for i in l:
if not i in d:
d[i] = 1
else:
d[i] += 1
for j in d.keys():
metin1.insert(0.0,f"{j} : {d[j]}\n")
def ana_pencere(text):
pencere = Tk()
pencere.title("Kelime Sayıcı")
pencere.geometry("450x450")
metin = Text(pencere, width=60, height=25)
metin.insert(0.0,text)
metin.pack()
buton =Button(text="Say", command = lambda: tekrarSayfasi(text), width=8)
buton.pack()
pencere.mainloop()
ana_pencere("bir berber bir berbere gel beraber bir berber dükkanı açalım demiş")
Ufak bir düzenleme ile ney yapıldığını anlayacağınızı düşünüyorum.
1 Beğeni
teşekkür ederim
1 Beğeni