radio button
ویجت Radiobutton یک ویجت استاندارد Tkinter است که برای انتخاب چند انتخاب ساخته شده است. Radiobuttons می تواند متن یا تصاویر داشته باشد و شما می توانید یک تابع یا روش پایتون را با هر دکمه مرتبط کنید. وقتی دکمه فشار داده می شود، Tkinter به طور خودکار این عملکرد یا روش را فراخوانی می کند. این دکمه تنها می تواند متن را در یک فونت نمایش دهد، اما متن ممکن است بیش از یک خط باشد. علاوه بر این، یکی از کاراکترها میتواند به صورت زیر نشان داده شود، مثلا برای نشان دادن یک میانبر صفحهکلید. به طور پیش فرض، کلید Tab را می توان برای حرکت به ویجت دکمه استفاده کرد. هر گروه از ویجت های Radiobutton باید با متغیر واحد مرتبط باشد. هر دکمه سپس یک مقدار واحد برای آن متغیر را نشان می دهد. هنگام استفاده از ویجت Radiobutton ویجت radiobutton برای پیاده سازی یکی از چندین انتخاب استفاده می شود. این تقریبا همیشه در گروه ها استفاده می شود، جایی که همه اعضای گروه از همان متغیر استفاده می کنند. الگوها # ویجت Radiobutton بسیار شبیه دکمه چک است. برای به دست آوردن یک رفتار رادیویی مناسب، مطمئن شوید که تمام دکمه ها در یک نقطه گروه به یک متغیر مشابه باشد، و از گزینه ارزش برای مشخص کردن مقدار ارزش هر دکمه استفاده کنید.
#importing libraries
from tkinter import *
# building a window
window = Tk()
#adding window title
window.title("icc-aria gui app")
#making the radiobutton with the function
v = IntVar()
v2 = IntVar()
Radiobutton(window, text="One", variable=v, value=1).pack(anchor=W)
Radiobutton(window, text="Two", variable=v2, value=2).pack(anchor=W)
#creating the loop for the program
window.mainloop()
نمونه خروجی:
اگر شما نیاز به مطلع شدن در هنگام تغییر ارزش، یک callback command به هر دکمه اضافه کنید.برای ایجاد تعداد زیادی از دکمه ها، از یک حلقه استفاده کنید مثال:
#importing libraries
from tkinter import *
# building a window
window = Tk()
#adding window title
window.title("icc-aria gui app")
#making a list of all buttons we want
MODES = [("ali", "name"),("bigdeli", "family name"),("icc-aria.ir", "site")]
#setting the first choosen one
v = StringVar()
v.set("name") # initialize
#making a loop to create we want to do
for text, mode in MODES:
b = Radiobutton(window, text=text,variable=v, value=mode)
b.pack(anchor=W)
#creating the loop for the program
window.mainloop()
نمونه خروجی:
برای تغییر مثال بالا به یک دکمه "دکمه" به جای مجموعه ای از دکمه های رادیویی، گزینه شاخص را به 0 تنظیم کنید. در این مورد هیچ نشانگر رادیویی جداگانه ای وجود ندارد و دکمه انتخاب شده به جای SUNKEN به جای RAISED کشیده شده است: شکل: با استفاده از indicatoron = 0 مثال:
#importing libraries
from tkinter import *
# building a window
window = Tk()
#adding window title
window.title("icc-aria gui app")
#making a list of all buttons we want
MODES = [("ali", "name"),("bigdeli", "family name"),("icc-aria.ir", "site")]
#setting the first choosen one
v = StringVar()
v.set("name") # initialize
#making a loop to create we want to do
for text, mode in MODES:
b = Radiobutton(window, text=text,variable=v, value=mode,indicatoron=0)
b.pack(anchor=W)
#creating the loop for the program
window.mainloop()
نمونه خروجی:
سلام.
برای اینکه بشه هر بار تیکی که میزنیم value اش رو واسمون خروجی تو ترمینال بنویسه چجوری باید تابع اش رو بنویسیم؟ من تابع نوشتم ولی هر بار فقط mode آخر رو مینوشت واسم.
با تشکر
باید به یک bind وصل کنین که با هر بار تغییر مقادیرش رو بخونین، به بخش مربوط به bind مراحعه کنین
باید با گت بگیری v.get() باید اون رو به استرینگ کنیم و مینویسیم str(v.get()) برای چاپش داخل ترمینال هم باید رشته استرینگ رو داخل تابع پرینت بزاری تمامم...
valueچیه
مقدار