LabelFrame

LabelFrame یک عنصر نگه دارنده یا والد ساده است. هدف اصلی آن، عمل کردن به عنوان جداکننده یا در برگیرنده چیدمان‌های پیچیده دیگر است. این عنصر، دارای ویژگی‌های frame، به همراه قابلیت نمایش یک برچسب بوده و نحوه تعریف آن به صورت زیر است:

LabelFrame(master, option, ...)

master، بیانگر پنجره والدی است که LabelFrame به آن تعلق خواهد داشت و Options، تنظیمات پرکاربرد برای LabelFrame می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

تنظیمات شرح
bg رنگ پس زمینه در حالت عادی
bd اندازه خط حاشیه اطراف عنصر. پیش فرض 2 پیکسل است.
cursor با انتساب یکی از نام‌های نشانگر ماوس (arrow،dot و …) برای این گزینه، زمانی که ماوس بر روی این عنصر قرار گیرد نشانگر ماوس به الگوی مشخص شده تغییر می‌یابد.
font فونت متن
height اندازه عمودی عنصر
labelAnchor محل قرار گرفتن label
highlightbackground رنگ فوکوس زمانی که فریم دارای فوکوس نیست. (در اطراف عنصر قرار می‌گیرد)
highlightcolor رنگ فوکوس نمایش داده شده در زمان دریافت فوکوس
highlightthickness ضخامت فوکوس نمایش داده شده
relief با داشتن مقدار پیش فرض خود، FLAT، حاشیه عنصر نسبت به پس زمینه خود برجسته نمی‌شود. می‌توانید این گزینه را به سبک‌های دیگر تغییر دهید.
text برای مشخص کردن متن نمایش داده شده درون عنصر است.
width پهنای مورد نظر را برای پنجره مشخص می‌کند.

LabelFrame برای گروه بندی عناصر بکار می‌رود. یکی از کاربردهای خوب LabelFrame این است که، شما می‌خواهید دکمه‌های RadioButton را گروه بندی کنید. با توجه به اینکه فقط یکی از دکمه‌های RadioButton در فرم می‌تواند فعال باشد، شما می‌توانید با گروه بندی کردن آنها بیش از یک دکمه‌ی RadioButton فعال داشته باشید. برای انجام اینکار، دو LabelFrame را بر روی فرم قرار دهید. به مثال زیر توجه کنید:

 1: import tkinter
 2: from tkinter import *
 3: from tkinter import messagebox
 4:
 5: window = tkinter.Tk()
 6: window.geometry('300x200')
 7:
 8: labelframe1 = LabelFrame(window, text="Group 1")
 9: labelframe1.pack(fill="both")
10:
11: labelframe2 = LabelFrame(window, text="Group 2")
12: labelframe2.pack(fill="both")
13:
14: var1 = IntVar()
15: radioButton1 = Radiobutton(labelframe1, variable=var1, value=1, text="radioButton1")
16: radioButton2 = Radiobutton(labelframe1, variable=var1, value=2, text="radioButton2")
17:
18: var2 = IntVar()
19: radioButton3 = Radiobutton(labelframe2, variable=var2, value=3, text="radioButton3")
20: radioButton4 = Radiobutton(labelframe2, variable=var2, value=4, text="radioButton4")
21:
22: radioButton1.pack(anchor = W)
23: radioButton2.pack(anchor = W)
24: radioButton3.pack(anchor = W)
25: radioButton4.pack(anchor = W)
26:
27: window.mainloop()

LabelFrame به شما اجازه می‌دهد که برای هر دسته یک عنوان قرار دهید. شما می‌توانید با استفاده از خاصیت text عنصر LabelFrame یک عنوان برای آن قرار دهید. همچنین عنصر LabelFrame در دور آن به طور پیشفرض یک حاشیه قرار دارد. نتیجه اجرای کد بالا به شکل زیر خواهد کرد:
labelframe-in-tkinter-01