در نوشته های پیشین نشان دادیم پنجره اصلی که از کلاس Tk ساخته می شود، ویجتی است که دیگر ویجت ها را میزبانی می کند. بنابراین می توان گفت که آن ویجت ریشه است. Frame ویجت دیگری که بر روی پنجره اصلی چسبانده شده و از این پس می توانیم دیگر ویجت ها مانند Label, Button. Text, Entry, Checkbox, RadioButton را بر روی آن چسباند. در تابع سازنده، هر frame می تواند به کمک پارامتر bg یا background رنگ پس زمینه اش را دریافت می کند. همچنین پارامترهای width و height به ترتیب عرض و ارتفاع را دریافت می کنند. پارامتر bd یا border اندازه حاشیه (Border) و relief شیوه حاشیه گذاری را نشان می دهند.

حاشیه گذاری در Tkinter

حاشیه گذاری تنها ویژه Frame ها نیست بلکه می توانیم در Label ها نیز حاشیه گذاری را انجام دهیم. برای حاشیه گذاری، پارامتر bd اندازه ضخامت حاشیه و پارامتر relief، گونه حاشیه را نشان می دهند. در Tkinter چندین شیوه حاشیه گذاری هست که هر کدام با یکی از ثابت های زیر به کار می روند. در کد زیر یک لیست از نام حاشیه های  Tkinter داریم و در هر گام از حلقه for که به اندازه این لیست انجام می شود، یک Frame ساخته می شود که مقدار relief آن برابر با یکی از عنصرهای لیست است و اندازه حاشیه نیز برابر با ۲ است. سپس در همان گام  یک برچسب ساخته شده که متن آن برابر با مقدار کنونی عنصر لیست است. سپس دو بار به کمک متد ()pack، نخست برچسب در سمت چپ فریم چسبانده می شود و سپس خود فریم، در سمت چپ (LEFT) پنجره اصلی افزوده می شود. توجه کنید پنجره اصلی بیرون از حلقه for ساخته شده است.

  • RAISED
  • SUNKEN
  • FLAT
  • RIDGE
  • GROOVE
  • SOLID

جدا سازی دو ویجت با فریم

یکی دیگر از کاربردهای فریم، جدا سازی دو ویجت از یکدیگر است. در کد زیر فریمی با اندازه حاشیه ۱ و ارتفاع ۲ ساخته ایم، که میان دو ویجت label1 و label2 نشانده می شود. توجه کنید ترتیب نشانده شدن ویجت ها، همان ترتیب فراخوانی متدهای ()pack است و همچنین چون پارامتر side در ()pack نشان داده نشده است، پس مقدار پیش فرض TOP در نظر گرفته می شود و از این رو چسبانده شدن از بالا به پایین خواهد بود.

پارامترهای padx و pady در متد ()pack

همه ویجت های Tkinter همانند Label, Button, Text, Entry, Frame, Checkbox و دیگر ویجت ها دارای متد ()pack هستند و این متد دارای پارامتری به نام side است که محل قرار گیری ویجت بر روی ویجت ریشه همانند پنجره اصلی Tk یا Frame را نشان می دهد. پارامتر side یکی از چهار مقدار TOP, RIGHT, BOTTOM و LEFT را دریافت می کند. دو پارامتر دیگر در ()pack پارامترهای padx (یا Padding X) و pady (یا Padding Y) نام دارد که مفهومی همانند Padding در CSS دارند. padx اندازه پیکسل های افقی بیرون از ویجت و pady اندازه پیکسل های عمودی بیرون از ویجت را نشان می دهند. در کد زیر padx برابر با ۵ پیکسل و فاصله از سمت راست و چپ بیرون ویجت و pady نیز برابر با ۵ پیکسل و فاصله از سمت بالا و پایین بیرون ویجت را نشان می دهند.

پارامتر fill در متد ()pack

یکی دیگر از پارامترهای ()pack پارامتر fill است که چگونگی پر شدن فضای خالی اختصاص داده شده به یک ویجت را نشان می دهد. اگر مقدار X به آن داده شود، پس در راستای افقی و اگر مقدار Y داده شود، در راستای عمودی و اگر BOTH داده شود، در هر دو راستا خواهد بود. مقدار پیش فرض آن نیز برابر با NONE است.