شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش پایتون - Radiobutton

این ویجت یک دکمه چند گزینه‌ای پیاده‌سازی می‌کند، که به کاربر امکان انتخاب یکی از چندین گزینه را می‌دهد و او را قادر به انتخاب تنها یکی از آن‌ها می‌کند.برای پیاده‌سازی این عملکرد، هر گروه ازRadiobuttonها باید به یک متغیر مرتبط شود و هر یک از دکمه‌ها باید یک مقدار را نمایان کند. شما می‌توانید از کلید تب برای تغییر از یک Radiobutton به دیگری استفاده کنید.

نحوه استفاده

در ادامه، کد برای ایجاد این ویجت آورده شده است: 

w = Radiobutton ( master, option, ...  )

پارامترها

  • master − این نماینده پنجره والد می‌باشد.

  • options − در اینجا لیستی از گزینه‌های معمول استفاده‌شده برای این ویجت آورده شده‌است

شماره گزینه و توضیحات
1

activebackground

رنگ پس‌زمینه هنگامی که ماوس بر روی رادیوباتن قرار می‌گیرد.

2

activeforeground

رنگ متن هنگامی که ماوس بر روی رادیوباتن قرار می‌گیرد.

3

anchor

اگر ویجت در فضای بزرگ‌تری از نیاز خود قرار دارد، این گزینه مشخص می‌کند که رادیوباتن در آن فضا کجا قرار می‌گیرد. پیش‌فرض anchor=CENTER است.

4

bg

رنگ پس‌زمینه معمولی پشت نشانگر و برچسب.

5

bitmap

برای نمایش تصویر بیت‌مپ در یک رادیوباتن، این گزینه را به یک نشانگر تنظیم کنید.

6

borderwidth

اندازه حاشیه اطراف بخش نشانگر خود. پیش‌فرض ۲ پیکسل است.

7

command

فرآیندی که هر بار کاربر وضعیت این رادیوباتن را تغییر می‌دهد، فراخوانی می‌شود.

8

cursor

اگر این گزینه را به نام یک نشانگر تنظیم کنید (arrow، dot و غیره)، ماوس هنگامی که بر روی رادیوباتن است، به آن الگو تغییر خواهد کرد.

9

font

فونت استفاده شده برای متن.

10

fg

رنگ استفاده شده برای نمایش متن.

11

height

تعداد خطوط (نه پیکسل‌ها) متن در رادیوباتن. پیش‌فرض ۱ است.

12

highlightbackground

رنگ برجسته سازی فوکوس هنگامی که رادیوباتن فوکوس ندارد.

13

highlightcolor

رنگ برجسته سازی فوکوس هنگامی که رادیوباتن فوکوس دارد.

14

image

برای نمایش یک تصویر گرافیکی به جای متن برای این رادیوباتن، این گزینه را به یک شیء تصویر تنظیم کنید.

15

justify

اگر متن شامل چند خط باشد، این گزینه کنترل می‌کند چگونه متن به چپ، وسط یا راست تراز می‌شود: CENTER (پیش‌فرض)، LEFT یا RIGHT.

16

padx

فضایی که باید از چپ و راست رادیوباتن و متن خالی بماند. پیش‌فرض ۱ است.

17

pady

فضایی که باید بالا و پایین رادیوباتن و متن خالی بماند. پیش‌فرض ۱ است.

18

relief

نوع حاشیه تزئینی حول برچسب. پیش‌فرض FLAT است؛ برای مقادیر دیگر.

19

selectcolor

رنگ رادیوباتن هنگامی که تنظیم می‌شود. پیش‌فرض قرمز است.

20

selectimage

اگر از گزینه تصویر برای نمایش یک گرافیک به جای متن هنگامی که رادیوباتن خالی است، استفاده می‌کنید، می‌توانید گزینه selectimage را به یک تصویر دیگر تنظیم کنید که هنگامی که رادیوباتن تنظیم شده است، نمایش داده می‌شود.

21

state

پیش‌فرض state=NORMAL است، اما می‌توانید state=DISABLED را تنظیم کنید تا کنترل را خاموش کنید. اگر ماوس در حال حاضر بر روی رادیوباتن است، state=ACTIVE است.

22

text

برچسب نمایش داده‌شده کنار رادیوباتن. از خطوط جدید ("n\") برای نمایش چند خط متن استفاده کنید.

23

textvariable

برای اتصال متن نمایش‌داده‌شده در ویجت برچسب به متغیر کنترلی از کلاس StringVar، این گزینه را به آن متغیر تنظیم کنید.

24

underline

شما می‌توانید زیرخط (_) را زیر حرف n ام متن نمایش‌داده‌شده قرار دهید، با تعداد‌شمارش از 0، با تنظیم این گزینه به n. پیش‌فرض underline=-1 است، که به معنی بدون زیرخط است.

25

value

هنگامی که یک رادیوباتن توسط کاربر روشن می‌شود، متغیر کنترل آن به گزینه مقدار فعلی خود تنظیم می‌شود. اگر متغیر کنترل یک IntVar باشد، هر رادیوباتن در گروه یک گزینه مقدار عددی متفاوت داشته باشد. اگر متغیر کنترل یک StringVar باشد، هر رادیوباتن یک گزینه مقدار رشته‌ای متفاوت داشته باشد.

26

variable

متغیر کنترلی که این رادیوباتن با سایر رادیوباتن‌ها در گروه به اشتراک می‌گذارد. این می‌تواند یک IntVar یا StringVar باشد.

27

width

عرض برچسب به تعداد کاراکترها (نه پیکسل!). اگر این گزینه تنظیم نشود، برچسب به اندازه محتویات خود اندازه‌گیری خواهد شد.

28

wraplength

شما می‌توانید تعداد کاراکترهای هر خط را با تنظیم این گزینه به تعداد مورد نظر محدود کنید. مقدار پیش‌فرض ۰ است، که به معنی شکستن خط‌ها فقط در نقطه‌های جدید است.

متدها

شماره متد و توضیحات
1

deselect()

رادیوباتن را پاک می‌کند (غیرفعال می‌کند).

2

flash()

رادیوباتن را چندین بار بین رنگ‌های فعال و معمولی‌اش فلش می‌دهد، اما آن را به حالت اولیه باقی می‌گذارد.

3

invoke()

شما می‌توانید این متد را فراخوانی کنید تا اقداماتی که همان اتفاقاتی که کاربر بر روی رادیوباتن کلیک می‌کند برای تغییر حالت آن رخ می‌دهد را دریافت کنید.

4

select()

رادیوباتن را تنظیم می‌کند (فعال می‌کند).

مثال

مثال زیر را امتحان کنید −

from tkinter import *

def sel():
   selection = "You selected the option " + str(var.get())
   label.config(text = selection)

root = Tk()
var = IntVar()
R1 = Radiobutton(root, text="Option 1", variable=var, value=1,
                  command=sel)
R1.pack( anchor = W )

R2 = Radiobutton(root, text="Option 2", variable=var, value=2,
                  command=sel)
R2.pack( anchor = W )

R3 = Radiobutton(root, text="Option 3", variable=var, value=3,
                  command=sel)
R3.pack( anchor = W)

label = Label(root)
label.pack()
root.mainloop()

هنگام اجرای کد بالا، نتیجه زیر تولید می‌شود :

رادیوباتن TK