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 در دور آن به طور پیشفرض یک حاشیه قرار دارد. نتیجه اجرای کد بالا به شکل زیر خواهد کرد: