با سلام
بهنام صباغی هستم با اموزش tkinter این قسمت frame
این ابزار برای بهتر مدیریت کردن دیگر ابزار ها بکار میره اگر تا حالا دقت کرده باشید میدونید که ما برای ساخت ابزار هامون تا حالا همیشه اولین ورودی رو پنجرمون میدادیم که اسمشم هم میذاشتیم root از اینجا به بعد میتونیم برای مدیریت بهتر از frame ها استفاده کنیم اما این که اصلا فریم ها چی هستند باید بگم که یه ابزار هستند که ما میذاریمشون برای این که بقیه ی ابزار هامون رو روشون نماشی بدیم شاید براتون سوال باشه مگه همون پنجره چشه اینجا باید بگم که چیزیش نیست اصلا این قرار نیست جای پنجره رو بگیره این روی پنجره میاد حالا چرا فریم دلیللش اینه که میتونیم مثلا یه قسمت رو بذاریم برای دکمه ها یه قسمت برای مثلا چک باتن ها و وقتی میخوایم یه مثلا دکمه اضافه کنیم دیگه نگران بهم ریختن چک باتن ها نیستیم فقط باید قسمتی که مربوط به دکمه هاست رو تغییر بدیم نمونه ی ملموسشم میتونم بگم فایل منیجر ویندوز ( مای کامپیوترتون رو باز کنید ) یه قسمت خیلی بزرگ داره که توش پوشه هامونو نمایش میده و یه قسمت که ساختار درختی دایرکتوری ها رو نشون میده خب توضیح بسه اگر نفهمیدید تا الان چی گفتم اصلا نگران نباشید درس رو تا ته بخونید قول میدم براتون جا بیوفته  فریم اینجوری ایجاد میشه

MyFrame = ttk.Frame(root)
حالا ما اندازش رو با کانفیگ کردن طول و عرضش تنظیم میکنیم ببینید
MyFrame.config(width = 200 , height= 300)
میبینید چه ساده حالا ما برای فریم ها حالت های مختلف داریم از لحاظ ظاهری که 6 نوعه به عکس زیر دقت کنید




برای این که بتونیم حالت های بالا رو ذخیره کنیم باید با استفاده از کانفیگ پراپر تی  relief رو برابر اون اسامی که روی عکس نوشته قرار بدیم مثلا من میخوام فریمم صاف باشه پس از FLAT استفاده میکنم به معنی صاف و ازتون میخوام بقیه حالت ها رو خودتون تست کنید تا یاد بگیرید و بفهمید هرکدوم چه شکلیه
MyFrame.config(relief=FLAT)



حواستون باشه باید با حروف بزرگ بنوسید منم یه بار 6 تاشونو براتون مینویسم که کامل باشه بدون عکس هم
RAISED , SUNKEN , SOLID , RIDGE , GROOVE , FLAT
خب اینها رو خودتون تست کنید قطعه کد زیرم میدم ببینید و روش تمرین کنید
#****************CODE *******************************
from tkinter import *
from tkinter import ttk

root=Tk()

frame= ttk.Frame(root)
frame.pack()
frame.config(width = 200 , height= 300 , relief=FLAT)
b1=ttk.Button(frame, text=' click on me ').grid()



دقت کنید برای نشون دادن باتنم از یه حالت دیگه استفاده کردم به اسم گرید grid که توی درس های اینده در مورد اینها براتون توضیح میدم اینجا هم فقط میخواستم بگم که میشه روی هر فریم از یکی از این حالت ها برای نشون دادن استفاده کرده شما میتونید از pack هم استفاده کنید زیاد بهش گیر ندید تا وقتی به درسش رسیدیم دوباره بهتون یاد اوری میکنم که کجا ها میشه ازشون استفاده کرد و کجا ها بهتره ازشون استفاده کنیم الام میخوام یه نوع فریم دیگه به نام لیبل فریم LabelFrame رو معرفی کنم فرقش با لیبل عادی اینه که یه متن کوچیک هم بالاش داره که میتونه خیلی جاها بکارمون بیاد
#*********************CODE *************************************
from tkinter import *
from tkinter import ttk

root=Tk()

frame= ttk.Frame(root)
frame.pack()
frame.config(width = 200 , height= 300 , relief=RIDGE)
b1=ttk.Button(frame, text=' click on me ').grid()

frame.config(padding =(30 , 15))

lf = LabelFrame(root,width = 200 , height = 400 , text='MY LABEL' )
lf.pack()

چند تا نکته نیازه بگم اول این که یکی این که چون اولین فریممون رو با pack نشون دادیم بقیه فریم ها رو هم با pack باید روی روت نشون بدیم فقط میتونیم روی هر لیبل از یه نوع استفاده کنیم خدا نگهدار تا درس بعدی