bir tool programı yazıyorum ve bir sol menü yaptım alt alta özellikler ekledim ve bu her özelliğe tıkladıgımda her özelliğe göre farklı arayüzler cıksın istiyorum ama ben framelerini ekledim ama gecişlerini yapamadım yardım edebilecek varmı acaba?
bu konu hakkında bilgisi olan yokmu acaba?
Merhaba,
Normalde ttk.Notebook
bu iş için biçilmiş kaftan. ttk.Notebook
'un, tıklandığı zaman farklı tk.Frame
widgetlerini aynı ekrana yerleştiren tab
ları var. Tıpkı bir web tarayıcının sekmelerinin farklı sayfaları ekrana getirmesi gibi, bu tablar da aynı ekran üzerinde farklı tk.Frame
widgetlerini açar.
Örnek:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
left_frame = tk.Frame(master=root)
left_frame.pack(side="left")
notebook = ttk.Notebook(master=left_frame)
frame1 = tk.Frame(notebook, bg="red", width=200, height=200)
frame2 = tk.Frame(notebook, bg="blue", width=200, height=200)
notebook.add(frame1, text='Frame 1')
notebook.add(frame2, text='Frame 2')
notebook.pack()
root.mainloop()
ttk.Notebook
'a alternatif olarak tk.Button
widgetleri de kullanabilirsiniz. Her bir tk.Button
widgeti farklı bir tk.Frame
widgetini ekrana yerleştirir, yerleştirmeden önce de başka bir tk.Button
'un ekrana yerleştirdiği tk.Frame
widgetini ekrandan kaldırır.
Aşağıda tk.Button
widgeti kullanılan bir örnek görüyorsunuz. Umarım işinize yarar.
import tkinter as tk
class Button(tk.Button):
def __init__(self, widget, color, *args, **kwargs):
super().__init__(*args, **kwargs)
self.frame = tk.Frame(
master=widget,
bg=color,
width=widget["width"],
height=widget["height"]
)
self.configure(
command=lambda: self.command(widget=widget),
width=10
)
self.pack(side="left")
def command(self, widget):
for child in widget.winfo_children():
child.pack_forget()
self.frame.pack(expand=True, fill="both")
root = tk.Tk()
top_frame = tk.Frame(master=root)
top_frame.pack(expand=True, fill="both")
bottom_frame = tk.Frame(master=root, width=200, height=200)
bottom_frame.pack(expand=True, fill="both")
button1 = Button(
master=top_frame,
widget=bottom_frame,
text="Button 1",
color="red"
)
button2 = Button(
master=top_frame,
widget=bottom_frame,
text="Button 2",
color="blue"
)
root.mainloop()
hocam dediğiniz videoya baktıydım bende yaptım ama bu sefer hata oluyor