Python tkinter import olayları

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.

Ekran görüntüsü_2022-12-16_11-16-02

#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()

tam olarak ne sorduğunu anlayamadım ama ön tanımlı olarak root diye bir şey olmasını bekliyorsan: yok. Ama genelde ana pencereye root ismi verilir.

import tkinter as tk
from tkinter import ttk

def callback_function():
    pass

root = tk.Tk()

button = ttk.Button(root, text="TEXT", command=callback_function)
button.pack()

root.mainloop()
1 Beğeni

Merhaba, aşağıdaki gibi bir dizin ağaç yapınız olduğunu varsayalım:

Ekran Görüntüsü - 2022-12-16 10-18-38

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.

2 Beğeni

Hocam değerli vaktinizi ayırıp cevap verdiğiniz için çok teşekkür ederim. Bu şekilde bir kullanım olduğunu bilmiyordum. sorun çözüldü.

size de teşekkür ederim cevabınız için.