Herkese merhaba. Tkinterde button bu şekilde kullanılıyor mu bilmiyorum. Sadece denemek istediğimde root u bulamadığını fark ettim. Bunun için ne yapılması gerekiyor ? Şimdiden teşekkür ederim.
#test.py
from tkinter import *
from test_folder.button import *
root = Tk()
root.mainloop()
#test_folder/button.py
from tkinter import Button
button = Button(root).pack()
Merhaba, aşağıdaki gibi bir dizin ağaç yapınız olduğunu varsayalım:
Programı çalıştıran dosya ./test.py olsun, programın ihtiyaç duyduğu diğer python dosyaları da ./scripts klasörü içinde yer alıyor olsun.
./test.py dosyasının içeriği şöyle olsun:
from scripts.libs import tk
from scripts.button import Button
root = tk.Tk()
Button(master=root, text="Test Button")
root.mainloop()
./scripts/libs.py dosyasının içeriği şöyle olsun:
import tkinter as tk
Ve ./scripts/button.py dosyasının içeriği şöyle olsun:
from .libs import tk
class Button(tk.Button):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.pack()
Yukarıda, ./scripts/button.py dosyası içinde tk.Button sınıfını miras alan, özelleştirilebilen, Button isimli bir sınıf tanımladık. Sonra ./test.py dosyası içine ./scripts/button.py dosyasından Button sınıfını aktardık. Dolayısıyla Button sınıfından değişken oluşturma işlemini, sınıfı tanımladığımız ./scripts/button.py dosyası içinde değil, tanımladığımız sınıfı kullanarak oluşturacağımız örneğe ihtiyaç duyduğumuz ./test.py dosyası içinde tanımladık. Örneğinizi test.py içinde oluşturursanız, sorununuz çözülecektir.