جلسه پنجم: ویجت‌های بیشتر و سازماندهی بهتر پنجره‌ها

۱. Radiobutton — دکمه انتخاب چندگانه (انتخاب یکی از چند گزینه)

 

## ۲. Listbox — لیستی از گزینه‌ها با قابلیت انتخاب

۳. Scrollbar — اسکرول بار برای پیمایش متن یا لیست

نکات مهم جلسه پنجم:

* Radiobutton: متغیر متصل به همه رادیوباتن‌ها باید یکسان باشد (StringVar یا IntVar) تا فقط یک گزینه انتخاب شود.
* Listbox: انتخاب را با curselection() می‌گیریم، چند گزینه هم قابل انتخاب است (با تنظیم selectmode).
* Scrollbar: باید به ویجتی وصل شود که قابلیت پیمایش دارد مثل Text یا Listbox و با yscrollcommand و command ارتباط دوطرفه برقرار شود.

## 🧪 تمرین جلسه پنجم:

یک پنجره بساز با:

* یک لیست میوه (Listbox)
* سه Radiobutton برای انتخاب رنگ (قرمز، سبز، آبی)
* یک Text چندخطی برای توضیح
* یک Scrollbar برای Text
* دکمه‌ای که با کلیک:

* میوه انتخاب شده و رنگ انتخابی را نمایش دهد
* متن داخل Text را هم چاپ کند

 

## کد تمرین جلسه پنجم:

 

نکات مهم جلسه پنجم:

۱. Listbox

* curselection() یک لیست ایندکس‌های انتخاب شده می‌دهد. برای گرفتن مقدار باید از listbox.get(index) استفاده کرد.
* اگر هیچ گزینه‌ای انتخاب نشده باشد، ممکن است لیست خالی باشد.

۲. Radiobutton

* همه رادیوباتن‌ها باید به یک متغیر (StringVar یا IntVar) متصل باشند تا فقط یکی انتخاب شود.
* مقدار انتخاب شده با color_var.get() خوانده می‌شود.

۳. ScrollBar و Text

* اسکرول بار به صورت جداگانه ساخته می‌شود و با پارامترهای command و yscrollcommand به ویجت متصل می‌شود.
* معمولا Text و Scrollbar را داخل یک Frame قرار می‌دهیم برای سازماندهی بهتر.

۴. نمایش پیام با messagebox

* برای نمایش پیام‌های اطلاعاتی و هشدار می‌توان از messagebox.showinfo استفاده کرد.
* ابتدا باید from tkinter import messagebox را ایمپورت کرد.